You might get some ideas by looking at how the Boehm GC does it
Enrico

> On 7 Dec 2018, at 14:15, Rick McGuire <object.r...@gmail.com> wrote:
> 
> Ignoring for a moment the elephant in the corner of the Apple deprecated (and 
> non-functional) sem_* functions, the *ix versions of the semaphore functions 
> are really sort of broken. 
> 
> For the event semaphores, one of the functions is a reset, which uses 
> sem_init() to perform the reset. This probably doesn't work (or at least, is 
> not guaranteed to work) because the documentation states that using 
> sem_init() on an existing semaphore handle is undefined. 
> 
> The interpreter code uses the SysSemaphore class which implements all of the 
> desired behavior, but since it uses pthread, it only works for the unnamed 
> case. It would not be a huge effort to dual path named vs. unnamed, but the 
> sem_init() problems still exist for the named case. 
> 
> There are similar problems with the Mutex functions. These are implemented 
> using the same semaphore functions so a lot of the same issues exist. Also, 
> I'm not convinced that what is implemented here is a true mutex function. 
> Again, the classes implemented in SysSemaphore can be used here, but only for 
> the unnamed cases. I have not been able to find any equivalent to windows 
> named mutex semaphores in the linux world. 
> 
> In summary, fixing the unnamed versions of these would be a fairly simple 
> thing, fixing the named versions, I have no solutions. 
> 
> Rick
> 
> 
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel



_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to