
"Chris M. Thomasson" <cristom@charter.net> wrote in message news:h7ep7q$a5r$1@ger.gmane.org...
"Chris M. Thomasson" <cristom@charter.net> wrote in message news:h7168i$vq4$1@ger.gmane.org...
"Anthony Williams" <anthony.ajw@gmail.com> wrote in message news:87fxbh1ccf.fsf@dell.justsoftwaresolutions.co.uk... [...]
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: http://pastebin.com/f527722e0 Here is the difference between leaky code and corrected code above: http://pastebin.com/pastebin.php?diff=f527722e0