[Vm-dev] Why isn't signalSemaphoreWithIndex() thread-safe?

John M McIntosh johnmci at smalltalkconsulting.com
Sun Sep 20 20:00:16 UTC 2009

Well there is no generic synchronizing code, so you are correct it has  
to be platform specific.
When I wrote the original code a decade? back in the macintosh os-9  
era there was no agreement
about doing platform specific implementations since at the time there  
was a tendency to keep all
the code as generic as possible.

So do you have a test case or scenario where the code fails?

On 2009-09-20, at 12:43 PM, Joshua Gargus wrote:

> Hi,
> I've always assumed that signalSemaphoreWithIndex() must be thread- 
> safe;
> after all, it's the "official" mechanism for notifying the image  
> that an
> asynchronous event has occurred.  However, a pang of paranoia prompted
> me to actually look at the code, and it seems clearly unsafe.  This is
> bad, because I've been using it to signal events from separate native
> threads.
> What should we do about this?  It seems to me that it should be  
> wrapped
> in a critical section, using the appropriate platform-specific
> synchronization primitives.
> Thanks,
> Josh

John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:   
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com

More information about the Vm-dev mailing list