Crate rculock [−] [src]
A lock that allows for an unlimited number of concurrent readers, which are never blocked. Only one writer can access the resource at a time.
Examples
use rculock::{RcuLock, RcuGuard}; // Create a new RcuLock protecting a piece of data, in this case a number (u32). let data: RcuLock<u32> = RcuLock::new(5); assert_eq!(5, *data.read()); { // The data is cloned and handed to the writer let mut guard: RcuGuard<u32> = data.write(); // RcuGuard implements `Deref` and `DerefMut` for easy access to the data. *guard = 4; // The writer has changed its copy of the data, but the changes // have not yet made it back to the master `RcuLock`. assert_eq!(5, *data.read()); } // After the write guard is dropped, the state of the resource // as the writer sees it is atomically stored back into the master RcuLock. assert_eq!(4, *data.read());
Structs
RcuGuard | |
RcuLock |