'From Squeak3.0 of 4 February 2001 [latest update: #3413] on 14 February 2001 at 10:06:01 am'! "Change Set: ProcessTerminateFix Date: 14 February 2001 Author: tim@sumeru.stanford.edu Very simplest fix to the problem of a vm crash if a terminated Proces is resumed. Would not stop a crash if the suspendedcontext of an active or quiescent Process were to be corrupted, but that requires some vm changes. [tweaked by Dan I. to minimize overhead] "! !Process methodsFor: 'changing process state' stamp: 'tpr 2/14/2001 10:00'! primitiveResume "Primitive. Allow the process that the receiver represents to continue. Put the receiver in line to become the activeProcess. Fail if the receiver is already waiting in a queue (in a Semaphore or ProcessScheduler). Essential. See Object documentation whatIsAPrimitive." self primitiveFailed! ! !Process methodsFor: 'changing process state' stamp: 'tpr 2/14/2001 10:03'! resume "Allow the process that the receiver represents to continue. Put the receiver in line to become the activeProcess. Check for a nil suspendedContext, which indicates a previously terminated Process that would cause a vm crash if the resume attempt were permitted" suspendedContext ifNil: [^ self primitiveFailed]. ^ self primitiveResume! !