5 #include <condition_variable>
9 namespace corbaServer {
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
Implement CORBA interface `‘Obstacle’'.
Definition: client.hh:46