Boost logo

Boost :

Subject: Re: [boost] [thread] Is there interest in shared_lock_prioritized?
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2013-02-20 08:46:35


2013/2/20 Vicente J. Botet Escriba <vicente.botet_at_[hidden]>:

> Fredrik Orderud is working on a templated version (See [Threads-devel]
> Extend shared_mutex with support for priority policies?) "shared_pri_mutex"
> with support for the following prioritization policies:
> UNSPECIFIED_PRIORITY, EXCLUSIVE_PRIORITY and SHARED_PRIORITY."
>
> IIUC, your approach is dynamic, that is, it the user that choose the
> priority while locking, while IIRC his approach is static, that is, the
> priority is given by the type of mutex, preserving in this way the
> boost::shared_mutex interface.

You are right, Fredrik Orderuds solution is better because it does not
break existing interface. It is incapable of making multiple lock
queues of different priorities:

shared_lock_prioritized<10> lock;

// thread #1
// Lock with minimal priority
lock.lock();

// thread #2
lock.lock(5);

// thread #3
// Will acquire lock before #2,
// if #2 did not already acquire lock
lock.lock(6);

However user usually do not need such functionality, so it does not
worth breaking API.

--
Best regards,
Antony Polukhin

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