I am tring to implement a RWLock interface
interface IRWLock
{
void acquireLockShared(); //< LockRead.
void releaseLockShared(); //< UnLockRead.
void acquireLockExclusive(); //< LockWrite.
void releaseLockExclusive(); //< UnLockWrite.
};
by using boost::shared_mutex
, boost::unique_lock
and boost::shared_lock
.
The problem I have is that boost::shared_lock
/ boost::unique_lock
are using RAII and should be one instance per thread (not shared as I need). I didn't managed to break acquire and release in two separate actions as I need.
Can this be solved somehow ?