I am missing very much from the new standard the std::shared_lock
template class.
In Boost.Thread there is boost::shared_lock
, even boost::upgrade_lock
exists.
Why is that, there is no std::shared_lock and std::unique_lock
in C++11?
How is it possible to acquire a similar behavior as boost::shared_lock
has, but in pure C++11?
I was thinking to use boost::shared_lock<std::mutex>
, but this doesn't have so much sense, since std::mutex
does not have a lock_shared()
member. And also, there is no such as std::shared_mutex
.
Howard's proposal for std::shared_mutex
was turned down for C++11 due to lack of time to consider it properly. He's proposed it again for C++17, and it's being discussed at the meeting in Portland this week.
In the mean time, if you can use Boost then you may as well; there won't be any new functionality for it being standardized.
That said, it's worth checking that using shared_mutex
is actually of benefit --- in many cases it doesn't provide the hoped-for performance gains due to contention on the mutex itself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With