in reply to Re^2: Semaphores failing to prevent race condition
in thread Semaphores failing to prevent race condition

Not conclusive yet, as the client's only been running about three days, but it looks as though this simple fix solved the problem.

The answer seems to be that Thread::Semaphore is, ironically, not thread-safe.

  • Comment on Re^3: Semaphores failing to prevent race condition

Replies are listed 'Best First'.
Re^4: Semaphores failing to prevent race condition
by BrowserUk (Patriarch) on Mar 16, 2011 at 17:00 UTC
    The answer seems to be that Thread::Semaphore is, ironically, not thread-safe.

    Thanks for the update, and please do continue to keep us (me) informed.

    Unfortunately there are a bunch of modules in the Thread::* namespace that were never tested in multi-core or multi-cpu setups. Getting a handle on which ones are broken is useful information.

    Better yet, once you're convinced that Thread::Semaphore is the source of your problems, a bug report against it might see it corrected, or at least a documentation change to reflect the problem.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.