Boost logo

Boost :

Subject: Re: [boost] [thread] Can Boost.Thread use Boost.Atomic without falling on a compatibility issue?
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-01-13 14:44:55


On Sun, Jan 13, 2013 at 11:15 PM, Vicente J. Botet Escriba
<vicente.botet_at_[hidden]> wrote:
>
> I believed it also but the mutex shouldn't be locked while doing
> notifications, only when you change the condition and when you wait for the
> condition to be notified.

Looking at the code now it seems there is a potential race condition.
The commit or rollback can set the flag and issue the broadcast just
before the enter method acquires the lock and blocks in the cv.

I suppose there should be a second check for the flag value under the
lock in the enter_once_region method. The locks in commit and rollback
functions can be removed altogether then.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk