Hi,

with both ksh93t+ and ksh93u the scriptlet

  function f_cmd {
    echo $*
    OUT=$(eval "$*" 2>&1)
    echo finished
  }
  f_cmd "find /var | egrep -vi -e '\.snapshot'"

does block within the used read() of iousepipe()
found in src/cmd/ksh93/sh/xec.c.  If I remove
the line

           shp->subdup |= 1<< fn;

in sh_redirect() found in src/cmd/ksh93/sh/io.c
it works again.  The added check

          if(shp->comsub==1)

for ksh93u does not prevent such hangs. Also
masking out from shp->subdup for dupfd!=1 later
on does not prevent anything for dupfd==1.

Now my question is: why it is reqiured to add
the duplicated file descriptor to subdup as it
seems to make reading from the pipes input to
hang.

    Werner

-- 
  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr
_______________________________________________
ast-developers mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to