[PATCH] Implement shared_mutex re: N4508

Marshall Clow mclow.lists at gmail.com
Tue Jun 16 10:42:07 PDT 2015


Hi EricWF,

[N45088](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508) adds `shared_mutex` to the set of mutex classes.  This is exactly the same as `shared_timed_mutex`, without the timed bits.

Create a new class `__shared_mutex_base` with all the non-timed bits in it, and make `shared_timed_mutex` and `shared_mutex` use it. Don't inherit from it, because ABI break. Also, leave some stubs in the dylib for the functions that were renamed, because ABI break.

Duplicate the `shared_timed_mutex` tests, strip out the timed bits, and rename them to use `shared_mutex`

http://reviews.llvm.org/D10480

Files:
  include/shared_mutex
  src/shared_mutex.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/nothing_to_do.pass.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/assign.fail.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/copy.fail.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock.pass.cpp
  test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D10480.27770.patch
Type: text/x-patch
Size: 19772 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150616/e42da252/attachment.bin>


More information about the cfe-commits mailing list