diff options
author | Tor Egge <Tor.Egge@oath.com> | 2017-10-27 10:56:52 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2017-10-27 10:56:52 +0000 |
commit | 3d624588f8ff199d8517c626a92edf38156e0d01 (patch) | |
tree | 9eac6dd3b93873d0e3e7dc54709125358f4140ed /fnet | |
parent | 70fd239b4e41121a45299192ac28c39242bc30df (diff) |
Use std::mutex and std::condition_variable instead of FastOS_Cond.
Diffstat (limited to 'fnet')
-rw-r--r-- | fnet/src/vespa/fnet/connection.cpp | 19 |
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(); + } } } |