| 83 | } |
| 84 | |
| 85 | void releaseWrite(bool exclusive = true) { |
| 86 | std::unique_lock<fastlock> rm(m_readLock, std::defer_lock); |
| 87 | serverAssert(m_writeCount > 0); |
| 88 | if (m_multi) { |
| 89 | rm.lock(); |
| 90 | if (exclusive) |
| 91 | m_writeLock.unlock(); |
| 92 | m_cv.notify_all(); |
| 93 | } |
| 94 | m_writeCount--; |
| 95 | } |
| 96 | |
| 97 | void downgradeWrite(bool exclusive = true) { |
| 98 | releaseWrite(exclusive); |
no test coverage detected