Semaphore in a thread is not doing what it supposed to do on OS X, contrary on Windows

I am surprised that <> was closed. Further, <> says it was fixed and verified. I filed a new one <> that simply shows that semaphoring is not working. This can be demonstrated by setting up a synchronous update to a progressbar.

When the semaphore gets ownership of the thread by the initial call to signal, the second call to signal halts the thread. So far so good. However, the call to release does not resume the thread (because no updates from a spawned timer are being called). Remarkably, the thread’s state returns zero, telling us that the thread is running normally. But it isn’t.

The sample project shows this issue on OS X, while it runs fine on windows. If this is not enough convincing then …