| Allegro CL version 6.1 Unrevised | |||||||||
Arguments: (home gate [options] [letvars]) body
The purpose of this macro and the related with-access-gate* is to serialize access to a shared object. The body is evaluated after the gate is grabbed. The gate is opened on exit from the body. The body can only return a single value.
The options are :if-not
followed by a form to be evaluated and keyword/value pairs suitable to
be passed to grab-gate. The
letvars are let binding forms.
In with-access-gate, the let variables are bound as in let, before the gate is grabbed. In the related with-access-gate*, the let variables are bound as in let*, after the gate is grabbed.
The home argument is an expression that evaluates
to an object that identifies the home of the gate. The gate argument
is an expression that evaluates to an instance of a
mp:gate (see Gates (both models) in
multiprocessing.htm).
The value of the :if-not option is evaluated if the
gate cannot be grabbed within the timeout implied by the home object or
an explicit timeout option.
See also rpc.htm for general information on the Remote Procedure Call utility in Allegro CL.
Copyright (c) 1998-2001, Franz Inc. Berkeley, CA., USA. All rights reserved.
Documentation for Allegro CL version 6.1 update # 1. This page was not revised.
Created 2001.12.15.
| Allegro CL version 6.1 Unrevised | |||||||||