Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-10-23 | sync: add mem::forget to RwLockWriteGuard::downgrade. (#2957) | Zahari Dichev | |
Currently when `RwLockWriteGuard::downgrade` the `MAX_READS - 1` permits are added to the semaphore. When `RwLockWriteGuard::drop` gets invoked however another `MAX_READS` permits are added. This results in releasing more permits that were actually aquired when downgrading a write to a read lock. This is why we need to call `mem::forget` on the `RwLockWriteGuard` in order to avoid invoking the destructor. Fixes: #2941 | |||
2020-01-03 | sync: add RwLock (#1699) | João Oliveira | |
Provides a `RwLock` based on a semaphore. The semaphore is initialized with 32 permits. A read acquires a single permit and a write acquires all 32 permits. This ensures that reads (up to 32) may happen concurrently and writes happen exclusively. |