☜ | LOCK1990 Version of ANSI Standard | ☞ |
L[OCK] postcond | │ │ │ |
[ SP ] SP L lockargument |
│ │ │ |
See 2.5.1 for the definition of postcond. See section 1 for the definition of L.
lockargument | ::= | │ │ │ │ │ │ |
@ expratom V L lockargument |
│ │ │ │ │ │ |
See 2.6.12 for the definition of nref. See 2.5.6 for the definition of timeout. See 2.2 for the definition of expratom. See section 1 for the definition of V. See section 1 for the definition of L.
nref | ::= | │ │ │ |
[ ^ ] name [ ( L expr ) ] @ expratom V nref |
│ │ │ |
See 2.2.1 for the definition of name. See 2.3 for the definition of expr. See 2.2 for the definition of expratom. See 2.6.12 for the definition of nref. See section 1 for the definition of V. See section 1 for the definition of L.
Lock provides a generalized interlock facility available to concurrently executing MUMPS processes to be used as appropriate to the applications being programmed. Execution of Lock is not affected by, nor does it directly affect, the state or value of any global or local variable, or the value of the naked indicator. Its use is not required to access globals, nor does its use inhibit other processes from accessing globals. It is an interlocking mechanism whose use depends on programmers establishing and following conventions.
Each lockargument specifies a subspace of the total MUMPS name space for which the executing process seeks to make or release an exclusive claim; the details of this subspace specification are given below.
For the purposes of this discussion, name space is herein defined as the union of all possible nrefs after resolution of all indirection. There exists a table, called the locktable, which contains zero or more nrefs for each MUMPS process. A given nref may appear more than once for the same process and it may not appear for multiple processes. Each nref represents a claim on a portion of the name space. The subspace of the total name space claimed by each nref in the locktable is as follows:
If the Lock command is argumentless, Lock removes all nrefs in the locktable that are associated with this process.
Execution of lockargument occurs in the following order:
Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.
This page most recently updated on 15-Nov-2023, 14:45:36.
For comments, contact Ed de Moel (demoel@jacquardsystems.com)