Next: _gfortran_caf_unlock, Previous: _gfortran_caf_sendget, Up: Function ABI Documentation [Contents][Index]
_gfortran_caf_lock
— Locking a lock variableAcquire a lock on the given image on a scalar locking variable or for the
given array element for an array-valued variable. If the aquired_lock
is NULL
, the function return after having obtained the lock. If it is
nonnull, the result is is assigned the value true (one) when the lock could be
obtained and false (zero) otherwise. Locking a lock variable which has already
been locked by the same image is an error.
void _gfortran_caf_lock (caf_token_t token, size_t index, int image_index,
int *aquired_lock, int *stat, char *errmsg, int errmsg_len)
token | intent(in) An opaque pointer identifying the coarray. |
index | Array index; first array index is 0. For scalars, it is always 0. |
image_index | The ID of the remote image; must be a positive number. |
aquired_lock | intent(out) If not NULL, it returns whether lock could be obtained |
stat | intent(out) Stores the STAT=; may be NULL |
errmsg | intent(out) When an error occurs, this will be set to an error message; may be NULL |
errmsg_len | the buffer size of errmsg. |
This function is also called for critical blocks; for those, the array index is always zero and the image index is one. Libraries are permitted to use other images for critical-block locking variables.