On Tue, Jun 16, 2009 at 11:19:00AM +0530, K. K. Subramaniam wrote:
On Monday 15 June 2009 09:20:27 pm K. K. Subramaniam wrote:
On etoys4#2229+OSProcessV4-3-7, the waitForCommand: hangs after executing: ReleaseBuilderSqueakland new prepareReleaseImageForSqueakland.
Doing: Cursor wait showWhile: [ OSProcess waitForCommand: 'sleep 2']
works fine just before this command but if run after this send, the method hangs waiting for runState to turn from #running to #complete even after the child process is done.
I was able to narrow down the difference to ReleaseBuilderForSqueakland>>finalStripping ... >>discardFFI ..
recreateSpecialObjectsArray
Filed bug http://tracker.squeakland.org/browse/SQ-262. Attached is a simple script that shows the behavior (even without LPF.st). Run it on a *copy* of a etoys dev image (the script overwrites the image).
OSProcess relies on a semaphore to notify it when a child process exits. If you recreate the special objects array, it may be causing OSProcess to lose this connection, hence external processes would appear to never reach the #complete state.
Try doing this immediately after recreating the special objects array:
OSProcess accessor initialize
This will restart the process that waits on the semaphore, which will hopefully now be waiting on the correct semaphore.
Dave