dwww Home | Manual pages | Find package

SHMEM_LOCK(3)                      Open MPI                      SHMEM_LOCK(3)

NAME
       shmem_set_lock(3),  shmem_clear_lock(3), shmem_test_lock(3) - Releases,
       locks, and tests a mutual exclusion memory lock.

SYNOPSIS
       C or C++:
       #include <mpp/shmem.h>

       void shmem_clear_lock(volatile long *lock);

       void shmem_set_lock(volatile long *lock);

       int shmem_test_lock(volatile long *lock);

       Fortran:
       INCLUDE "mpp/shmem.fh"

       INTEGER lock, SHMEM_TEST_LOCK

       CALL SHMEM_CLEAR_LOCK(lock)

       CALL SHMEM_SET_LOCK(lock)

       I = SHMEM_TEST_LOCK(lock)

DESCRIPTION
       The shmem_set_lock routine sets a mutual exclusion lock  after  waiting
       for  the  lock  to be freed by any other PE currently holding the lock.
       Waiting  PEs  are  assured  of  getting  the  lock  in  a   first-come,
       first-served manner.

       The   shmem_clear_lock  routine  releases  a  lock  previously  set  by
       shmem_set_lock after ensuring that all local and remote  stores  initi-
       ated in the critical region are complete.

       The shmem_test_lock function sets a mutual exclusion lock only if it is
       currently cleared.  By using this function, a PE can avoid blocking  on
       a  set lock. If the lock is currently set, the function returns without
       waiting.  These routines are appropriate for protecting a critical  re-
       gion from simultaneous update by multiple PEs.  They accept the follow-
       ing arguments:

       lock   A symmetric data object that is a scalar variable or an array of
              length  1.  This  data object must be set to 0 on all processing
              elements (PEs) prior to the first use. lock must be of type  in-
              teger. If you are using Fortran, it must be of default kind.

NOTES
       The term symmetric data object is defined on intro_shmem(3).

RETURN VALUES
       The  shmem_test_lock  function  returns  0  if  the lock was originally
       cleared and this call was able to set the lock. A value  of  1  is  re-
       turned  if  the lock had been set and the call returned without waiting
       to set the lock.

SEE ALSO
       intro_shmem(3)

4.1.2                            Nov 24, 2021                    SHMEM_LOCK(3)

Generated by dwww version 1.14 on Mon Jan 27 09:03:51 CET 2025.