Tighten up some of the comments describing turnstiles and sleepqueues.

No code changes.

Reviewed by: John Baldwin
This commit is contained in:
Kirk McKusick 2010-12-13 23:53:55 +00:00
parent 7c472105ac
commit b4dac21d68
2 changed files with 10 additions and 9 deletions

View File

@ -49,7 +49,7 @@
* call sleepq_set_timeout() after sleepq_add() to setup a timeout. It * call sleepq_set_timeout() after sleepq_add() to setup a timeout. It
* should then use one of the sleepq_timedwait() functions to block. * should then use one of the sleepq_timedwait() functions to block.
* *
* If the thread wants to the sleep to be interruptible by signals, it can * If the thread wants the sleep to be interruptible by signals, it can
* call sleepq_catch_signals() after sleepq_add(). It should then use * call sleepq_catch_signals() after sleepq_add(). It should then use
* one of the sleepq_wait_sig() functions to block. After the thread has * one of the sleepq_wait_sig() functions to block. After the thread has
* been resumed, it should call sleepq_calc_signal_retval() to determine * been resumed, it should call sleepq_calc_signal_retval() to determine
@ -68,7 +68,7 @@
* sleepq_signal(). These routines each return a boolean that will be true * sleepq_signal(). These routines each return a boolean that will be true
* if at least one swapped-out thread was resumed. In that case, the caller * if at least one swapped-out thread was resumed. In that case, the caller
* is responsible for waking up the swapper by calling kick_proc0() after * is responsible for waking up the swapper by calling kick_proc0() after
* releasing the sleep queeu chain lock. * releasing the sleep queue chain lock.
* *
* Each thread allocates a sleep queue at thread creation via sleepq_alloc() * Each thread allocates a sleep queue at thread creation via sleepq_alloc()
* and releases it at thread destruction via sleepq_free(). Note that * and releases it at thread destruction via sleepq_free(). Note that

View File

@ -39,13 +39,14 @@
* shared, or eread, lock, and one for threads waiting for an * shared, or eread, lock, and one for threads waiting for an
* exclusive, or write, lock. * exclusive, or write, lock.
* *
* A thread calls turnstile_lock() to lock the turnstile chain associated * A thread calls turnstile_chain_lock() to lock the turnstile chain
* with a given lock. A thread calls turnstile_wait() when the lock is * associated with a given lock. A thread calls turnstile_wait() when
* contested to be put on the queue and block. If a thread needs to retry * the lock is contested to be put on the queue and block. If a thread
* a lock operation instead of blocking, it should call turnstile_release() * calls turnstile_trywait() and decides to retry a lock operation instead
* to unlock the associated turnstile chain lock. * of blocking, it should call turnstile_cancel() to unlock the associated
* turnstile chain lock.
* *
* When a lock is released, the thread calls turnstile_lookup() to loop * When a lock is released, the thread calls turnstile_lookup() to look
* up the turnstile associated with the given lock in the hash table. Then * up the turnstile associated with the given lock in the hash table. Then
* it calls either turnstile_signal() or turnstile_broadcast() to mark * it calls either turnstile_signal() or turnstile_broadcast() to mark
* blocked threads for a pending wakeup. turnstile_signal() marks the * blocked threads for a pending wakeup. turnstile_signal() marks the
@ -55,7 +56,7 @@
* releasing the lock, turnstile_unpend() must be called to wake up the * releasing the lock, turnstile_unpend() must be called to wake up the
* pending thread(s) and give up ownership of the turnstile. * pending thread(s) and give up ownership of the turnstile.
* *
* Alternatively, if a thread wishes to relinquish ownership of a thread * Alternatively, if a thread wishes to relinquish ownership of a lock
* without waking up any waiters, it may call turnstile_disown(). * without waking up any waiters, it may call turnstile_disown().
* *
* When a lock is acquired that already has at least one thread contested * When a lock is acquired that already has at least one thread contested