[Vm-dev] primitive 87 resume

Florin Mateoc florin.mateoc at gmail.com
Wed May 19 23:05:08 UTC 2021


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210519/adb3a7ec/attachment.html>


More information about the Vm-dev mailing list