5#include <condition_variable>
28 std::unique_lock<std::mutex>
lk(shared_);
29 while (waitingWriters_ != 0) readerQ_.wait(
lk);
35 std::unique_lock<std::mutex>
lk(shared_);
38 writerQ_.notify_one();
42 std::unique_lock<std::mutex>
lk(shared_);
44 while (activeReaders_ != 0 || activeWriters_ != 0) writerQ_.wait(
lk);
50 std::unique_lock<std::mutex>
lk(shared_);
53 if (waitingWriters_ > 0)
54 writerQ_.notify_one();
56 readerQ_.notify_all();
62 std::condition_variable readerQ_;
63 std::condition_variable writerQ_;
Definition read-write-lock.hh:17
ReadWriteLock()
Definition read-write-lock.hh:19
void writeUnlock()
Definition read-write-lock.hh:49
void readUnlock()
Definition read-write-lock.hh:34
void readLock()
Definition read-write-lock.hh:27
void writeLock()
Definition read-write-lock.hh:41
ReturnType::Object_var makeServantDownCast(Server *server, const typename ServantBaseType::Storage &t)
Definition servant-base.hh:407
Implement CORBA interface `‘Obstacle’'.
Definition client.hh:46