[VM][ENH] LowSpaceAndInterruptHandler-dtl (MVC support added)

David T. Lewis lewis at mail.msen.com
Sat Apr 9 14:40:14 UTC 2005

This is an update for MVC.

LowSpaceAndInterruptHandlerMVC-dtl.cs.gz adds low space and interrupt key
handling for MVC. Load this after LowSpaceAnddInterruptHandler-dtl, and
load VMMLowSpaceAndInterruptHander-dtl for the VM changes.

With these change sets loaded (and with the VM rebuilt), Squeak MVC passes
the four Andreas tests for interruptability:

  * "[true] whileTrue"
  * "[[true] whileTrue] forkAt: Processor userSchedulingPriority + 1"
  * "Smalltalk createStackOverflow"
  * "[Smalltalk createStackOverflow] forkAt: Processor userSchedulingPriority + 1"

These changes also correct the long-standing (unreported) problem of not being
able to interrupt a high priority background process in MVC (test 2 above).
That problem goes back to at least Squeak 3.6.

(I've attached all three change sets so folks don't have to dig through
the mail to find them, but LowSpaceAndInterruptHandlerMVC-dtl.cs.gz is
the only thing that is new.)


On Sun, Apr 03, 2005 at 05:15:54PM -0400, David T. Lewis wrote:
> These change sets are updates to the VM and to the low space watcher that
> fix low space interrupt handling and user interrupt handling in Morphic.
> Under certain conditions the low space watcher was unable to determine the
> correct process to suspend following a low space signal. These changes permit
> the VM to remember the identity of the process that caused the low space
> condition, and to report it to the image through a primitive.
> The low space watcher changes are backward compatible for use with VMs
> that do not yet have the new primitive (i.e. broken the same way as was
> the case in Squeak 3.7).
> Caveats:
> - This is done with VMMaker 3-8b2, hence is not updated for 64 bit VM.
> - I added a numbered primitive, which is probably a bad thing (but I'm not
>   sure where best to put it, possibly MiscPrimitivePlugin?).
> - There may be a simpler way to accomplish this, but at least this is a
>   working implementation.
> - I have not tested the interpreter simulator, still need to make sure I did
>   not break it.
> Cross posted to vm-dev and squeak-dev. Follow-ups should go to vm-dev
> (unless someone can think of a way to handle this properly without
> touching the VM).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: LowSpaceAndInterruptHandlerMVC-dtl.cs.gz
Type: application/x-gunzip
Size: 1767 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20050409/3a0ffb06/LowSpaceAndInterruptHandlerMVC-dtl.cs.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LowSpaceAndInterruptHandler-dtl.cs.gz
Type: application/x-gunzip
Size: 2012 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20050409/3a0ffb06/LowSpaceAndInterruptHandler-dtl.cs.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: VMMLowSpaceAndInterruptHandler-dtl.cs.gz
Type: application/x-gunzip
Size: 5460 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20050409/3a0ffb06/VMMLowSpaceAndInterruptHandler-dtl.cs.bin

More information about the Vm-dev mailing list