diff options
author | Matti Linnanvuori <mattilinnanvuori@yahoo.com> | 2008-05-13 17:31:47 +0200 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2008-05-23 05:09:34 +0200 |
commit | 4d2e7d0d77e4e1e8a21cc990c607985fdba20e66 (patch) | |
tree | 4a5c3bd6c4e1f34d493146c1657d7fbeaa397cdc /Documentation/DocBook | |
parent | modules: proper cleanup of kobject without CONFIG_SYSFS (diff) | |
download | linux-4d2e7d0d77e4e1e8a21cc990c607985fdba20e66.tar.xz linux-4d2e7d0d77e4e1e8a21cc990c607985fdba20e66.zip |
doc: add a chapter about trylock functions [Bug 9011]
Add a chapter about trylock functions.
http://bugzilla.kernel.org/show_bug.cgi?id=9011
Signed-off-by: Matti Linnanvuori <mattilinnanvuori@yahoo.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (removed down_trylock)
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r-- | Documentation/DocBook/kernel-locking.tmpl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Documentation/DocBook/kernel-locking.tmpl b/Documentation/DocBook/kernel-locking.tmpl index 77c42f40be5d..2510763295d0 100644 --- a/Documentation/DocBook/kernel-locking.tmpl +++ b/Documentation/DocBook/kernel-locking.tmpl @@ -703,6 +703,31 @@ </sect1> </chapter> +<chapter id="trylock-functions"> + <title>The trylock Functions</title> + <para> + There are functions that try to acquire a lock only once and immediately + return a value telling about success or failure to acquire the lock. + They can be used if you need no access to the data protected with the lock + when some other thread is holding the lock. You should acquire the lock + later if you then need access to the data protected with the lock. + </para> + + <para> + <function>spin_trylock()</function> does not spin but returns non-zero if + it acquires the spinlock on the first try or 0 if not. This function can + be used in all contexts like <function>spin_lock</function>: you must have + disabled the contexts that might interrupt you and acquire the spin lock. + </para> + + <para> + <function>mutex_trylock()</function> does not suspend your task + but returns non-zero if it could lock the mutex on the first try + or 0 if not. This function cannot be safely used in hardware or software + interrupt contexts despite not sleeping. + </para> +</chapter> + <chapter id="Examples"> <title>Common Examples</title> <para> |