| 22 | } |
| 23 | |
| 24 | void ReadWriteLock::ReleaseReadUnlock() { |
| 25 | //get lock decrement active readers and notify one waiting writer |
| 26 | std::unique_lock<std::mutex> lk(shared); |
| 27 | active_readers--; |
| 28 | lk.unlock(); |
| 29 | writer_gate.notify_one(); |
| 30 | } |
| 31 | |
| 32 | void ReadWriteLock::AquireWriteLock() { |
| 33 | //declare waiting and wait till there are no more active readers or writers and get lock |