Document lwkt_token_swap in token(9).
authorVenkatesh Srinivas <me@endeavour.zapto.org>
Thu, 9 Jun 2011 15:34:23 +0000 (08:34 -0700)
committerVenkatesh Srinivas <me@endeavour.zapto.org>
Thu, 9 Jun 2011 15:34:23 +0000 (08:34 -0700)
share/man/man9/token.9

index a2198e1..9a48d21 100644 (file)
@@ -41,7 +41,9 @@
 .Nm lwkt_trytoken ,
 .Nm lwkt_reltoken ,
 .Nm lwkt_token_pool_lookup ,
-.Nm lwkt_getpooltoken
+.Nm lwkt_getpooltoken ,
+.Nm lwkt_relpooltoken ,
+.Nm lwkt_token_swap ,
 .Nd soft token locks
 .Sh SYNOPSIS
 .In sys/thread.h
@@ -59,6 +61,8 @@
 .Fn lwkt_token_pool_lookup "void *ptr"
 .Ft struct lwkt_token *
 .Fn lwkt_getpooltoken "void *ptr"
+.Ft void
+.Fn lwkt_token_swap ""
 .Sh DESCRIPTION
 A soft token is a lock which is only held while a thread is running.
 If a thread explicitly blocks, all its tokens are released, and reacquired
@@ -106,6 +110,12 @@ function acquires a token associated with an address.
 Use these two functions when tokens must protect a data structure,
 but the structure can be deallocated.
 Pool tokens do not need to be initialized.
+.Pp
+The 
+.Fn lwkt_token_swap
+function swaps the two most recently acquired tokens; this allows release of
+tokens out-of-order. This function should not be called when less than two
+tokens are held.
 .Sh EXAMPLES
 A simple example of using a token to protect access to a data structure:
 .Bd -literal