| 182 | } |
| 183 | |
| 184 | void unlock() override |
| 185 | { |
| 186 | chassert(owner.load(std::memory_order_relaxed) == silk::FiberScheduler::getCurrentFiber()); |
| 187 | if (--count == 0) |
| 188 | { |
| 189 | owner.store(nullptr, std::memory_order_relaxed); |
| 190 | mutex.unlock(); |
| 191 | } |
| 192 | } |
| 193 | |
| 194 | private: |
| 195 | silk::FiberMutex mutex; |
no test coverage detected