In ooRexx 4.0.0 compiled and run on Slackware Linux 13 (only 64 bit libraries installed), using the SysFork() RexxUtil function sets up the interpreter to crash when the parent process uses a queue after the child (spawned) process exits.
if PID=0 then do --CHILD
say 'bye bye'
end; else do --PARENT
parse pull T; say T
On Slackware 12 (32 bit Linux) using ooRexx 3.2.0, the exit code is 0 and the result displayed is
With ooRexx 4.0.0, I get an exit code from rexx of 141 and the following display:
The only work-around I currently have is to create and request a mutex semaphore before the fork and not allow the child process to exit until parent releases it, which curiously doesn't work for ooRexx 3.2.0, because SysRequestMutexSem() could return 0 before the semaphore was released (and possibly before the timeout expired).