[Etoys] finalStripping hangs waitForCommand
David T. Lewis
lewis at mail.msen.com
Tue Jun 16 07:22:29 EDT 2009
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.
More information about the Etoys