Lines Matching +full:9 +full:a
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
40 A thread acquires (locks) a mutex before accessing data shared with other
44 if the owner of a contended mutex is currently running on another CPU,
45 then a thread attempting to acquire the mutex will spin rather than yielding
50 .Xr mutex 9
53 Spin mutexes are a variation of basic mutexes; the main difference between
56 To avoid deadlock, a thread that holds a spin mutex must never yield its CPU.
63 .Xr bus_setup_intr 9
69 For example, a mutex may be embedded inside the structure it protects.
70 Mutex pools provide a preallocated set of mutexes to avoid this
72 Note that mutexes from a pool may only be used as leaf locks.
75 .Xr mtx_pool 9
79 or exclusive access by a single thread.
83 A thread with exclusive access is known as a
88 .Xr mutex 9 )
96 .Xr rwlock 9
104 using a caller-supplied
109 .Xr rmlock 9
112 Sleepable read-mostly locks are a variation on read-mostly locks.
114 but threads holding a shared lock may not.
119 Acquiring a contested shared/exclusive lock can perform an unbounded sleep.
123 .Xr sx 9
127 .Xr VFS 9
129 as a
130 .Xr vnode 9
135 .Xr BUF_LOCK 9
144 .Xr lock 9
148 .Xr epoch 9
150 .Xr smr 9 ,
151 which can be used to provide read-only access to a data structure while one or
154 .Xr epoch 9
156 .Xr smr 9
160 Thus, they are a useful building block in the construction of lock-free
165 except when performance or non-blocking guarantees are a major concern.
168 .Xr epoch 9
170 .Xr smr 9
173 Counting semaphores provide a mechanism for synchronizing access
174 to a pool of resources.
177 to acquire a resource, and another thread needs to release it.
181 .Xr sema 9
185 a condition to become true.
186 A thread must hold the associated lock before calling one of the
189 When a thread waits on a condition, the lock
196 .Xr condvar 9
209 arbitrary addresses may be used as wait channels and a dedicated
213 If a thread must wait for an external event, it is put to sleep by
220 .Xr mtx_sleep 9 ,
221 .Xr rw_sleep 9 ,
223 .Xr sx_sleep 9 .
229 All threads sleeping on a single
249 The lock is used to ensure that a condition can be checked atomically,
250 and that the current thread can be suspended without missing a
264 function is a special sleep function that waits for a specified
268 or a signal.
271 .Xr sleep 9
274 Giant is a special mutex used to protect data structures that do not
277 .Xr spl 9
301 The primitives can interact and have a number of rules regarding how
306 In a bounded sleep
310 the only resource needed to resume execution of a thread
311 is CPU time for the owner of a lock that the thread is waiting to acquire.
317 a thread waits for an external event or for a condition
320 a dependency chain of threads in bounded sleeps should always make forward
323 This requires that no thread in a bounded sleep is waiting for a lock held
324 by a thread in an unbounded sleep.
326 a thread in a bounded sleep lends its priority to the owner of the lock
339 while holding a spin mutex.
343 For example, it is an error to try to acquire a shared/exclusive lock while
344 holding a mutex, or to try to allocate memory with M_WAITOK while holding a
396 These cases are only allowed while holding a write lock on a sleepable
401 one can also use a
409 At this time this is a rather easy to remember table.
421 .Xr atomic 9 ,
422 .Xr BUS_SETUP_INTR 9 ,
423 .Xr callout 9 ,
424 .Xr condvar 9 ,
425 .Xr epoch 9 ,
426 .Xr lock 9 ,
427 .Xr LOCK_PROFILING 9 ,
428 .Xr mtx_pool 9 ,
429 .Xr mutex 9 ,
430 .Xr rmlock 9 ,
431 .Xr rwlock 9 ,
432 .Xr sema 9 ,
433 .Xr sleep 9 ,
434 .Xr smr 9 ,
435 .Xr sx 9