summaryrefslogtreecommitdiffstats
path: root/share/man/man9/condvar.9
Commit message (Collapse)AuthorAgeFilesLines
* Permit Giant to be passed as the explicit interlock either tojhb2008-08-071-0/+18
| | | | | | | | | | | | | | | msleep/mtx_sleep or the various cv_*wait*() routines. Currently, the "unlock" behavior of PDROP and cv_wait_unlock() with Giant is not permitted as it is will be confusing since Giant is fully unrecursed and unlocked during a thread sleep. This is handy for subsystems which wish to allow unlocked drivers to continue to use Giant such as CAM, the new TTY layer, and the new USB stack. CAM currently uses a hack that I told Scott to use because I really didn't want to permit this behavior, and the TTY and USB patches both have various patches to permit this. MFC after: 2 weeks
* bump date for 1.20imp2007-06-051-1/+1
|
* Add note about condvars not working with spin locks.imp2007-06-051-0/+6
|
* Add some cross references to locking.9 from related pages.julian2007-03-301-0/+1
|
* Rename the cv_*wait*() functions to _cv_*wait*() and change their secondjhb2007-03-211-9/+17
| | | | | | | | argument from a mutex to a lock_object. Add cv_*wait*() wrapper macros that accept either a mutex, rwlock, or sx lock as the second argument and convert it to a lock_object and then call _cv_*wait*(). Basically, the visible difference is that you can now use rwlocks and sx locks with condition variables using the same API as with mutexes.
* Allow threads to atomically release rw and sx locks while waiting for anjhb2007-03-091-1/+1
| | | | | | | | | | | | | | | | | | | event. Locking primitives that support this (mtx, rw, and sx) now each include their own foo_sleep() routine. - Rename msleep() to _sleep() and change it's 'struct mtx' object to a 'struct lock_object' pointer. _sleep() uses the recently added lc_unlock() and lc_lock() function pointers for the lock class of the specified lock to release the lock while the thread is suspended. - Add wrappers around _sleep() for mutexes (mtx_sleep()), rw locks (rw_sleep()), and sx locks (sx_sleep()). msleep() still exists and is now identical to mtx_sleep(), but it is deprecated. - Rename SLEEPQ_MSLEEP to SLEEPQ_SLEEP. - Rewrite much of sleep.9 to not be msleep(9) centric. - Flesh out the 'RETURN VALUES' section in sleep.9 and add an 'ERRORS' section. - Add __nonnull(1) to _sleep() and msleep_spin() so that the compiler will warn if you try to pass a NULL wait channel. The functions already have a KASSERT to that effect.
* Oof, it is not my day. Unswap the descriptions of EINTR and ERESTART.jhb2007-03-091-2/+2
|
* Fix a typo in the last that claimed that only masked signals were caught.jhb2007-03-091-2/+2
|
* Correct descriptions of EINTR and ERESTART errors. Masked signals don'tjhb2007-03-091-2/+2
| | | | | | interrupt sleeps. Rather, unmasked signals interrupt restarts and can either interrupt the system call by having it return EINTR in userland or force the system call to be restarted.
* - Document cv_wait_unlock(9).jhb2007-03-091-1/+10
| | | | | | | - Don't claim that the mutex is atomically reacquired when a cv_wait routine returns. There's nothing atomic or magical about the lock reacquire. The only magic is that we atomically drop the lock by placing the thread on the sleep queue before dropping the lock.
* Xref rwlock(9).glebius2006-02-011-1/+2
| | | | Reviewed by: ru
* Catch up to rev 1.52 of sys/kern/kern_condvar.c. cv_signal() andjhb2004-11-081-8/+0
| | | | | | | cv_broadcast() no longer require that the interlock mutex be held when called. Reminded by: das
* Spelling fixes.mpp2004-06-211-1/+1
|
* - Document cv_broadcastpri().jhb2004-03-101-15/+12
| | | | - Remove references to cv_waitq_*() as they no longer exist.
* Add mtx_pool(9) to the SEE ALSO section.dd2002-03-281-0/+1
| | | | Submitted by: Garrett Rooney <rooneg@electricjellyfish.net>
* Update function definitions and required include files to reflectdavidc2001-12-261-1/+3
| | | | | | the current state of the system. Approved by: alfred
* mdoc(7) police: Use the new .In macro for #include statements.ru2001-10-011-1/+1
|
* Common Mike adds see alsos from all of the synchronizationsilby2001-09-171-1/+3
| | | | man pages to their brethren.
* Spell "FreeBSD" with "F" and "BSD" in uppercase.ru2001-08-131-1/+1
|
* Removed whitespace at end-of-line; no content changes. I simply didschweikh2001-07-141-3/+3
| | | | | | | | | | cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//' BTW, what editors are the culprits? I'm using vim and it shows me whitespace at EOL in troff files with a thick blue block... Reviewed by: Silence from cvs diff -b MFC after: 7 days
* mdoc(7) police: use .Fa for function arguments, use .Vt for variable type.ru2001-01-161-11/+11
|
* Implement condition variables.jasone2001-01-161-0/+196
OpenPOWER on IntegriCloud