I am a bit puzzled with this primitive.
There is no sender of #setGCSemaphore: semaIndex in image,
and VM seems like using it for signaling semaphore as a post-GC action.
I expected that it is finalization process, which should use that
guy.. but no, it just using special objects array indice:
restartFinalizationProcess
...
FinalizationSemaphore := Smalltalk specialObjectsArray at: 42.
...
Apparentlly , each time we have GC, the finalization semaphore is signaled.
So, it makes me wonder, how it working because i see that VM signals
semaphore in postGCAction, which should be set by the mentioned
primitive.
--
Best regards,
Igor Stasenko AKA sig.