Boost logo

Boost :

Subject: Re: [boost] wait-free fast-pathed, bounded-time, 100% starvation-free rw-mutex...
From: Chris M. Thomasson (cristom_at_[hidden])
Date: 2009-09-04 00:06:12

"Chris M. Thomasson" <cristom_at_[hidden]> wrote in message
> "Chris M. Thomasson" <cristom_at_[hidden]> wrote in message
> news:h7168i$vq4$
>> "Anthony Williams" <anthony.ajw_at_[hidden]> wrote in message
> [...]
>>> For integration with boost, it would be good if the write-lock member
>>> functions could be called "lock()" and "unlock()", whilst the read-lock
>>> member functions are called "lock_shared()" and "unlock_shared()". This
>>> would allow the existing RAII classes to be used with this new rwmutex
>>> type.
>> Okay. I will add the try lock functions and change the function names,
>> and re-name the class to `fair_rwmutex' to attempt to get across that
>> it's `SCHED_OTHER'.
> Here is some preliminary code which adds some try lock functions, changes
> the name to `fair_mutex' and renames the `wrlock()/wrunlock()' procedures
> to `lock()/unlock()':
> I still need to test drive the try lock functions in Relacy to see if I
> missed anything. As for the `SCHED_OTHER' issue, well, I am not sure how
> to get around that without sacrificing the 100% starvation free and
> bounded-time guarantees. Humm...

I forgot to destroy a resource in the failure case of the constructor. Here
is code without the leak:

Here is the difference between leaky code and corrected code above:

Boost list run by bdawes at, gregod at, cpdaniel at, john at