[Vm-dev] primitive 87 resume

Eliot Miranda eliot.miranda at gmail.com
Thu May 20 22:15:01 UTC 2021

Hi Florin,

    here's my comment in the implementation from 2010:

"Personally I would like to check MyList, which should not be one of the
elements of the scheduler lists.
But there are awful race conditions in things like should:notTakeMoreThan:
that mean we can't.
eem 9/27/2010 23:08. e.g.

So it appears that there may be issues that make it difficult to change
the primitive.

On Wed, May 19, 2021 at 4:05 PM Florin Mateoc <florin.mateoc at gmail.com>

> Hi all,
> In the method Process>>resume, which invokes primitive 87, the comment
> states that the primitive should fail if the process is already waiting in
> a queue.
> But the implementation does not do that. If we execute (inspect) the
> snippet:
> | evaluationProcess result delay testProcess |
> delay := Delay forMilliseconds: 50.
> testProcess := Processor activeProcess.
> evaluationProcess := [
>   delay unschedule.
>   result := testProcess isBlocked.
>   testProcess resume] fork.
> delay wait.
> result
> it returns true (and no primitive failed error occurs), which means we
> successfully resumed a blocked (waiting on a semaphore) process.
> I also checked in VMMaker and indeed, the code does not check if the
> process is on a queue or not before just putting it on a runnable list.
> What do you think? Should the comment be changed or the implementation?
> Florin

best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210520/f205fcd2/attachment.html>

More information about the Vm-dev mailing list