From 46439007cf417cbd9ac8049bb4122c890097a0fa Mon Sep 17 00:00:00 2001 From: "Charles.Forsyth" Date: Fri, 22 Dec 2006 20:52:35 +0000 Subject: 20060303-partial --- man/2/lock | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 man/2/lock (limited to 'man/2/lock') 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 + -- cgit v1.2.3