Lines Matching full:rwlock
16 use tokio::sync::RwLock;
22 let rwlock = RwLock::new(42); in into_inner() localVariable
23 assert_eq!(rwlock.into_inner(), 42); in into_inner()
29 let rwlock = RwLock::new(100); in read_shared() localVariable
31 let mut t1 = spawn(rwlock.read()); in read_shared()
33 let mut t2 = spawn(rwlock.read()); in read_shared()
40 let rwlock = RwLock::new(100); in write_shared_pending() localVariable
41 let mut t1 = spawn(rwlock.read()); in write_shared_pending()
44 let mut t2 = spawn(rwlock.write()); in write_shared_pending()
51 let rwlock = RwLock::new(100); in read_exclusive_pending() localVariable
52 let mut t1 = spawn(rwlock.write()); in read_exclusive_pending()
55 let mut t2 = spawn(rwlock.read()); in read_exclusive_pending()
63 let rwlock = RwLock::with_max_readers(100, 1024); in exhaust_reading() localVariable
66 let mut t = spawn(rwlock.read()); in exhaust_reading()
73 let mut t1 = spawn(rwlock.read()); in exhaust_reading()
84 let rwlock = RwLock::new(100); in write_exclusive_pending() localVariable
85 let mut t1 = spawn(rwlock.write()); in write_exclusive_pending()
88 let mut t2 = spawn(rwlock.write()); in write_exclusive_pending()
95 let rwlock = RwLock::new(100); in write_shared_drop() localVariable
96 let mut t1 = spawn(rwlock.read()); in write_shared_drop()
99 let mut t2 = spawn(rwlock.write()); in write_shared_drop()
110 let rwlock = RwLock::new(100); in write_read_shared_pending() localVariable
111 let mut t1 = spawn(rwlock.read()); in write_read_shared_pending()
114 let mut t2 = spawn(rwlock.read()); in write_read_shared_pending()
117 let mut t3 = spawn(rwlock.write()); in write_read_shared_pending()
120 let mut t4 = spawn(rwlock.read()); in write_read_shared_pending()
128 let rwlock = RwLock::new(100); in write_read_shared_drop_pending() localVariable
129 let mut t1 = spawn(rwlock.read()); in write_read_shared_drop_pending()
132 let mut t2 = spawn(rwlock.write()); in write_read_shared_drop_pending()
135 let mut t3 = spawn(rwlock.read()); in write_read_shared_drop_pending()
143 // Acquire an RwLock nonexclusively by a single task
146 let rwlock = RwLock::new(100); in read_uncontested() localVariable
147 let result = *rwlock.read().await; in read_uncontested()
152 // Acquire an uncontested RwLock in exclusive mode
155 let rwlock = RwLock::new(100); in write_uncontested() localVariable
156 let mut result = rwlock.write().await; in write_uncontested()
164 let rwlock = RwLock::<Vec<u32>>::new(vec![]); in write_order() localVariable
165 let fut2 = rwlock.write().map(|mut guard| guard.push(2)); in write_order()
166 let fut1 = rwlock.write().map(|mut guard| guard.push(1)); in write_order()
170 let g = rwlock.read().await; in write_order()
174 // A single RwLock is contested by tasks in multiple threads
183 let rwlock = Arc::new(RwLock::<u32>::new(0)); in multithreaded() localVariable
184 let rwclone1 = rwlock.clone(); in multithreaded()
185 let rwclone2 = rwlock.clone(); in multithreaded()
186 let rwclone3 = rwlock.clone(); in multithreaded()
187 let rwclone4 = rwlock.clone(); in multithreaded()
193 let rwlock = rwclone1.clone(); in multithreaded() localVariable
195 let mut guard = rwlock.write().await; in multithreaded()
207 let rwlock = rwclone2.clone(); in multithreaded() localVariable
209 let mut guard = rwlock.write().await; in multithreaded()
221 let rwlock = rwclone3.clone(); in multithreaded() localVariable
223 let mut guard = rwlock.write().await; in multithreaded()
235 let rwlock = rwclone4.clone(); in multithreaded() localVariable
237 let mut guard = rwlock.write().await; in multithreaded()
246 let g = rwlock.read().await; in multithreaded()
252 let lock = RwLock::new(0); in try_write()
261 let lock: RwLock<usize> = RwLock::new(15); in try_read_try_write()