|
1 | 1 | #ifndef CANCELLATION_H |
2 | 2 | #define CANCELLATION_H |
3 | 3 |
|
4 | | -#include <boost/thread/lock_guard.hpp> |
5 | | -#include <boost/thread/recursive_mutex.hpp> |
| 4 | +#include <mutex> |
6 | 5 | #include <set> |
7 | 6 |
|
8 | 7 | namespace lsl { |
@@ -30,22 +29,22 @@ class cancellable_registry { |
30 | 29 |
|
31 | 30 | /// Register a cancellable object. |
32 | 31 | void register_cancellable(class cancellable_obj *o) { |
33 | | - lslboost::lock_guard<lslboost::recursive_mutex> lock(state_mut_); |
| 32 | + std::lock_guard<std::recursive_mutex> lock(state_mut_); |
34 | 33 | if (shutdown_issued_) |
35 | 34 | throw shutdown_error( |
36 | 35 | "The registry has begun to shut down; no new registrations possible."); |
37 | 36 | cancellables_.insert(o); |
38 | 37 | } |
39 | 38 | /// Unregister a cancellable object. |
40 | 39 | void unregister_cancellable(class cancellable_obj *o) { |
41 | | - lslboost::lock_guard<lslboost::recursive_mutex> lock(state_mut_); |
| 40 | + std::lock_guard<std::recursive_mutex> lock(state_mut_); |
42 | 41 | cancellables_.erase(o); |
43 | 42 | } |
44 | 43 |
|
45 | 44 | bool shutdown_issued_{false}; // whether a shutdown has been issued |
46 | 45 | std::set<cancellable_obj *> |
47 | 46 | cancellables_; // a set of objects that we have to cancel upon re-resolves & disengage |
48 | | - lslboost::recursive_mutex state_mut_; // mutex to protect the registry's state |
| 47 | + std::recursive_mutex state_mut_; // mutex to protect the registry's state |
49 | 48 | }; |
50 | 49 |
|
51 | 50 |
|
@@ -77,15 +76,15 @@ class cancellable_obj { |
77 | 76 |
|
78 | 77 | /// Cancel all registered objects. |
79 | 78 | inline void cancellable_registry::cancel_all_registered() { |
80 | | - lslboost::lock_guard<lslboost::recursive_mutex> lock(state_mut_); |
| 79 | + std::lock_guard<std::recursive_mutex> lock(state_mut_); |
81 | 80 | std::set<cancellable_obj *> copy(cancellables_); |
82 | 81 | for (auto obj : copy) |
83 | 82 | if (cancellables_.find(obj) != cancellables_.end()) obj->cancel(); |
84 | 83 | } |
85 | 84 |
|
86 | 85 | /// Cancel and prevent future object registrations. |
87 | 86 | inline void cancellable_registry::cancel_and_shutdown() { |
88 | | - lslboost::lock_guard<lslboost::recursive_mutex> lock(state_mut_); |
| 87 | + std::lock_guard<std::recursive_mutex> lock(state_mut_); |
89 | 88 | shutdown_issued_ = true; |
90 | 89 | cancel_all_registered(); |
91 | 90 | } |
|
0 commit comments