summaryrefslogtreecommitdiff
path: root/man/2/lock
diff options
context:
space:
mode:
Diffstat (limited to 'man/2/lock')
-rw-r--r--man/2/lock39
1 files changed, 39 insertions, 0 deletions
diff --git a/man/2/lock b/man/2/lock
new file mode 100644
index 00000000..ff9a0fa7
--- /dev/null
+++ b/man/2/lock
@@ -0,0 +1,39 @@
+.TH LOCK 2
+.SH NAME
+lock \-
+thread locking.
+.SH SYNOPSIS
+.EX
+include "lock.m";
+lock := load Lock Lock->PATH;
+Semaphore: adt {
+ c: chan of int;
+ obtain: fn(s: self ref Semaphore);
+ release: fn(s: self ref Semaphore);
+ new: fn(): ref Semaphore;
+};
+init: fn();
+.EE
+.SH DESCRIPTION
+.B Lock
+provides semaphore-based mutual exclusion.
+.B Init
+must be called before creating any locks.
+.TP
+.B Semaphore.new()
+Creates and returns a reference to a new
+.B Semaphore
+(lock).
+.TP
+.IB s .obtain()
+Obtains exclusive access to the lock
+.IR s .
+It will block until it can do so.
+.TP
+.IB s .release()
+Releases access to the lock
+.I s
+and allows processes waiting on it to proceed.
+.SH SOURCE
+.B /appl/lib/lock.b
+