Hi!

----

While testing "typeset -m" we found an inconsistency between subshells
which call |fork()| and subshells which do not use |fork()| ...

Example:
-- snip --
typeset -T screamwhendying_t=(
        typeset name

        function unset
        {
                printf 'ahhhh: %q\n' "${_.name}"
        }
)

function main
{
        bool dosubshellfork=$1
        print '# main start.'

        screamwhendying_t a
        a.name="aaa"

        integer z=789

(
        ${dosubshellfork} && ulimit -c 0
        typeset -m a=z
)

        print '# main done.'
}

set -o nounset

print '#### try with fork'
main true
print '\n#### try without fork'
main false
print '#### done.'
-- snip --

ast-ksh.2013-04-22 prints:
-- snip --
$ ksh returnobj.sh
#### try with fork
# main start.
ahhhh: aaa
# main done.
ahhhh: aaa

#### try without fork
# main start.
# main done.
ahhhh: aaa
#### done.
-- snip --

Note the difference in output when the subshell uses |fork()| and the
2nd call to "main" when the subshell does _not_ use |fork()| ... AFAIK
the output for the subshell which uses |fork()| is the correct one...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) [email protected]
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)
_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to