Sorry, but there is a problem with hotmail (or me!), the correct wording of my 
post is attached.

_________________________________________________________________
Windows Live Search - En søgning er nok
http://www.windowslive.dk/?cmp=LiveSearch_textlink&p=LiveSearch
Hi,

I am trying to make a coprocess in bash, I found an example here:
  
http://doc.mdcc.cx/cgi-bin/dwww?type=file&location=/usr/share/doc/bash-doc/examples/functions/coproc.bash

When I tried that example, it sometimes hung, so to debug it (and to understand 
it) I made my own version. This also hangs sometimes.

I found that it is this "exec" command that hangs:

  ( "$@" <$fifo.i >$fifo.o ; rm -f $fifo.i $fifo.o ) &
  exec 3>$fifo.i 4<$fifo.o || return $?

If I put in a "sleep" command:
  ( "$@" <$fifo.i >$fifo.o ; rm -f $fifo.i $fifo.o ) &
  sleep 5
  exec 3>$fifo.i 4<$fifo.o || return $?
it works.

If I switch the 2 lines, to this:
  exec 3>$fifo.i 4<$fifo.o || return $?
  ( "$@" <$fifo.i >$fifo.o ; rm -f $fifo.i $fifo.o ) &
it does not hang, but the background subshell never ends.

To me, it seems to be a timing issue, as it (seems to) work if I put in the 
"sleep" command.

I have attached my script. It should give this output:
$ ./mycoproc.bash
coprocess_test_1_server: start
coprocess_test_1_client: init rc: 0
coprocess_test_1_client: put rc: 0
coprocess_test_1_client: get rc: 0
coprocess_test_1_client: REPLY: 1 + 1 = 2
coprocess_test_1_server: end
coprocess_test_1_client: term rc: 0
$

Is there an issue with my script? bash? cygwin? or me?

Cheers,
Morten
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to