diff --git a/src/cmd/ksh93/sh/xec.c b/src/cmd/ksh93/sh/xec.c index 8271cfa67..bfcbe40da 100644 --- a/src/cmd/ksh93/sh/xec.c +++ b/src/cmd/ksh93/sh/xec.c @@ -1868,24 +1868,6 @@ int sh_exec(register const Shnode_t *t, int flags) sh.exitval -= 128; sh_done(0); } - else if(((type=t->par.partre->tre.tretyp)&FAMP) && ((type&COMMSK)==TFORK) - && !job.jobcontrol && !sh.subshell) - { - /* Optimize '( simple_command & )' */ - pid_t pid; - sfsync(NIL(Sfio_t*)); - while((pid=fork())< 0) - _sh_fork(pid,0,0); - if(pid==0) - { - sh.current_pid = getpid(); - sh_reseed_rand((struct rand*)RANDNOD->nvfun); - sh.realsubshell++; - sh_exec(t->par.partre,flags); - sh.st.trapcom[0]=0; - sh_done(0); - } - } else sh_subshell(t->par.partre,flags,0); break; diff --git a/src/cmd/ksh93/tests/variables.sh b/src/cmd/ksh93/tests/variables.sh index 5c48b2113..2bc4edc44 100755 --- a/src/cmd/ksh93/tests/variables.sh +++ b/src/cmd/ksh93/tests/variables.sh @@ -69,6 +69,7 @@ done (( rand1 == rand2 )) && err_exit "Test 3: \$RANDOM seed in subshell doesn't change" \ "(both results are $rand1)" # $RANDOM should be reseeded for the ( simple_command & ) optimization +# (which was removed on 2022-06-13, but let's keep the test) for((i=0; i|r1 ( echo $RANDOM & ) >|r2