From: SourceForge.net <no...@so...> - 2010-04-16 08:41:00
|
Bugs item #2988155, was opened at 2010-04-16 02:41 Message generated for change (Tracker Item Submitted) made by dangerdan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2988155&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: v4.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: DangerDan (dangerdan) Assigned to: Nobody/Anonymous (nobody) Summary: queue use crashes rexx after sysfork child exits Initial Comment: 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. #!/opt/ooRexx/bin/rexx PID=sysfork() if PID=0 then do --CHILD say 'bye bye' end; else do --PARENT say 'Queued()='queued(); say 'Queued()='queued(); say 'Hurrah!' queue 'one' parse pull T; say T end exit 0 On Slackware 12 (32 bit Linux) using ooRexx 3.2.0, the exit code is 0 and the result displayed is bye bye Queued()=0 Queued()=0 Hurrah! one With ooRexx 4.0.0, I get an exit code from rexx of 141 and the following display: bye bye Queued()=0 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). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2988155&group_id=119701 |