| 111 | } |
| 112 | } |
| 113 | void acquire(Mutex* m) { |
| 114 | _m_write.acquire(); |
| 115 | _m.acquire(); |
| 116 | _to_acquire = m; |
| 117 | _m.release(); |
| 118 | _e.signal(); |
| 119 | _e_done.wait(); |
| 120 | _m_write.release(); |
| 121 | } |
| 122 | void release(Mutex* m) { |
| 123 | _m_write.acquire(); |
| 124 | _m.acquire(); |