[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-dev mailing list