summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2017-10-27 10:56:52 +0000
committerTor Egge <Tor.Egge@oath.com>2017-10-27 10:56:52 +0000
commit3d624588f8ff199d8517c626a92edf38156e0d01 (patch)
tree9eac6dd3b93873d0e3e7dc54709125358f4140ed
parent70fd239b4e41121a45299192ac28c39242bc30df (diff)
Use std::mutex and std::condition_variable instead of FastOS_Cond.
-rw-r--r--fnet/src/vespa/fnet/connection.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/fnet/src/vespa/fnet/connection.cpp b/fnet/src/vespa/fnet/connection.cpp
index 180e7ea9adf..bdaeeefd1ae 100644
--- a/fnet/src/vespa/fnet/connection.cpp
+++ b/fnet/src/vespa/fnet/connection.cpp
@@ -16,25 +16,26 @@ LOG_SETUP(".fnet");
namespace {
class SyncPacket : public FNET_DummyPacket {
private:
- FastOS_Cond _cond;
+ std::mutex _lock;
+ std::condition_variable _cond;
bool _done;
bool _waiting;
public:
SyncPacket()
- : _cond(),
+ : _lock(),
+ _cond(),
_done(false),
_waiting(false) {}
~SyncPacket() {}
void WaitFree() {
- _cond.Lock();
+ std::unique_lock<std::mutex> guard(_lock);
_waiting = true;
while (!_done)
- _cond.Wait();
+ _cond.wait(guard);
_waiting = false;
- _cond.Unlock();
}
void Free() override;
@@ -44,11 +45,11 @@ public:
void
SyncPacket::Free()
{
- _cond.Lock();
+ std::unique_lock<std::mutex> guard(_lock);
_done = true;
- if (_waiting)
- _cond.Signal();
- _cond.Unlock();
+ if (_waiting) {
+ _cond.notify_one();
+ }
}
}