Lines Matching +full:wait +full:- +full:on +full:- +full:read

1 .\" Copyright (c) 2007 Julian Elischer  (julian -  freebsd org )
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
42 If the mutex cannot be acquired, the thread requesting it will wait.
44 if the owner of a contended mutex is currently running on another CPU,
82 since they should only read the protected data.
98 .Ss Read-Mostly Locks
99 Read-mostly locks are similar to
102 .Em Read-mostly
104 using a caller-supplied
111 .Ss Sleepable Read-Mostly Locks
112 Sleepable read-mostly locks are a variation on read-mostly locks.
146 .Ss Non-blocking synchronization
151 which can be used to provide read-only access to a data structure while one or
160 Thus, they are a useful building block in the construction of lock-free
164 in preference to traditional mutual exclusion-based synchronization,
165 except when performance or non-blocking guarantees are a major concern.
184 Condition variables are used in conjunction with locks to wait for
189 When a thread waits on a condition, the lock
193 reader/writer locks, read-mostly locks, and shared/exclusive locks.
207 also handle event-based thread blocking.
209 arbitrary addresses may be used as wait channels and a dedicated
211 However, care must be taken to ensure that wait channel addresses are
213 If a thread must wait for an external event, it is put to sleep by
219 Threads may also wait using one of the locking primitive sleep routines
227 is an arbitrary address that uniquely identifies the event on which
229 All threads sleeping on a single
235 event the thread was blocking on has occurred.
280 .Bl -enum
286 Note that infrastructure to do this is slowly going away as non-MPSAFE
289 Giant must be locked before other non-sleepable locks.
297 This means that you cannot count on Giant keeping other code from
330 mutexes, reader/writer locks and read-mostly locks.
333 sleepable read-mostly locks, shared/exclusive locks, lockmanager locks,
336 .Bl -bullet
374 .Bl -column ".Ic xxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXXXX" ".…
376 .It Em "You have: " Ta -------- Ta -------- Ta ------ Ta -------- Ta ------ Ta ------
377 .It spin mtx Ta \&ok Ta \&no Ta \&no Ta \&no Ta \&no Ta \&no-1
378 .It mutex/rw Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no-1
379 .It rmlock Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no-1
380 .It sleep rm Ta \&ok Ta \&ok Ta \&ok Ta \&ok-2 Ta \&ok-2 Ta \&ok-2/3
381 .It sx Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok-3
387 and reacquire it on wakeup
396 These cases are only allowed while holding a write lock on a sleepable
397 read-mostly lock.
404 reacquire it on wakeup.
406 Note that non-blocking try operations on locks are always permitted.
410 .Bl -column ".Ic Xxxxxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXXXX"…