aboutsummaryrefslogtreecommitdiff
path: root/src/sync.h
diff options
context:
space:
mode:
authorThomas Snider <tjps636@gmail.com>2017-11-18 11:35:14 -0800
committerThomas Snider <tjps636@gmail.com>2017-11-18 11:35:14 -0800
commitbba9bd0d9dd06f13a6b0c89181864453cab5c858 (patch)
treeb16239a61b68699026e7c7b93c0dad06081abd80 /src/sync.h
parent99bc0b428b03b571afbc311b7f18fd3a707ac5af (diff)
downloadbitcoin-bba9bd0d9dd06f13a6b0c89181864453cab5c858.tar.xz
Switched sync.{cpp,h} to std threading primitives.
Diffstat (limited to 'src/sync.h')
-rw-r--r--src/sync.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/sync.h b/src/sync.h
index b0889be767..3af27c65d0 100644
--- a/src/sync.h
+++ b/src/sync.h
@@ -8,8 +8,6 @@
#include <threadsafety.h>
-#include <boost/thread/condition_variable.hpp>
-#include <boost/thread/mutex.hpp>
#include <condition_variable>
#include <thread>
#include <mutex>
@@ -196,8 +194,8 @@ public:
class CSemaphore
{
private:
- boost::condition_variable condition;
- boost::mutex mutex;
+ std::condition_variable condition;
+ std::mutex mutex;
int value;
public:
@@ -205,16 +203,14 @@ public:
void wait()
{
- boost::unique_lock<boost::mutex> lock(mutex);
- while (value < 1) {
- condition.wait(lock);
- }
+ std::unique_lock<std::mutex> lock(mutex);
+ condition.wait(lock, [&]() { return value >= 1; });
value--;
}
bool try_wait()
{
- boost::unique_lock<boost::mutex> lock(mutex);
+ std::lock_guard<std::mutex> lock(mutex);
if (value < 1)
return false;
value--;
@@ -224,7 +220,7 @@ public:
void post()
{
{
- boost::unique_lock<boost::mutex> lock(mutex);
+ std::lock_guard<std::mutex> lock(mutex);
value++;
}
condition.notify_one();