VMS Help
PASCAL, Predeclared Routines, Low Level
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The low-level routines allow for parallel processes and
asynchronous routines to operate in a real-time or multi-tasking
environment.
The ADD_ATOMIC function adds the value of an expression to the
value of a variable, stores the newly computed value, and
returns the previous value.
Syntax:
ADD_ATOMIC(e,v)
The type of the expression 'e' must be assignment compatbile
with that of the variable 'v'. The variable 'v' must be an
INTEGER, UNSIGNED, INTEGER64, or UNSIGNED64 variable and must be
allocated on a natural boundary (ie, longword for INTEGER and
UNSIGNED and quadword for INTEGER64 and UNSIGNED64). The result
of ADD_ATOMIC is the same type as the variable 'v'.
Overflow and subrange checking are never performed on the
ADD_ATOMIC operation, even if these options are in effect for
the rest of the function or compilation unit.
The ADD_INTERLOCKED function adds the value of an expression to
the value of a variable, stores the newly computed value in the
variable, and returns an integer value: -1 if the new value is
negative, 0 if it is zero, and 1 if it is positive.
Syntax:
ADD_INTERLOCKED( e, v )
The type of the expression 'e' must be assignment compatible
with that of the variable 'v'. The variable 'v' must be an
integer or an unsigned subrange; 'v' must have an allocation
size of two bytes and must be aligned on a word boundary. The
type of 'e' must be assignment compatible with that of 'v'.
The AND_ATOMIC function logically ANDs the value of an
expression to the value of a variable, stores the newly computed
value, and returns the previous value.
Syntax:
AND_ATOMIC(e,v)
The type of the expression 'e' must be assignment compatbile
with that of the variable 'v'. The variable v must be an
INTEGER, UNSIGNED, INTEGER64, or UNSIGNED64 variable and must be
allocated on a natural boundary (ie, longword for INTEGER and
UNSIGNED and quadword for INTEGER64 and UNSIGNED64). The result
of AND_ATOMIC is the same type as the variable 'v'.
The BARRIER procedure causes a memory barrier instruction to be
emitted to synchronize pending memory updates in a
multi-processor environment.
Syntax:
BARRIER
The BARRIER procedure has no parameters.
The CLEAR_INTERLOCKED function assigns the value FALSE to the
parameter and returns the original Boolean value of the
parameter.
Syntax:
CLEAR_INTERLOCKED( b )
The variable 'b' must be a variable of type Boolean. The
variable does not have to be aligned; therefore, it can be a
field of a packed record.
The OR_ATOMIC function logically ORs the value of an expression
to the value of a variable, stores the newly computed value, and
returns the previous value.
Syntax:
OR_ATOMIC(e,v)
The type of the expression 'e' must be assignment compatbile
with that of the variable 'v'. The variable v must be an
INTEGER, UNSIGNED, INTEGER64, or UNSIGNED64 variable and must be
allocated on a natural boundary (ie, longword for INTEGER and
UNSIGNED and quadword for INTEGER64 and UNSIGNED64). The result
of OR_ATOMIC is the same type as the variable 'v'.
The SET_INTERLOCKED function assigns the value TRUE to the
parameter and returns its original Boolean value.
Syntax:
SET_INTERLOCKED( b )
The variable 'b' must be a variable of type Boolean. The
variable does not have to be aligned; therefore, it can be a
field of a packed record.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.