[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.

Dave



More information about the Etoys mailing list