shmem_atomic_compare_swap_nbi

The nonblocking atomic routine provides a method for performing an atomic
conditional swap on a remote data object.

Definitions

C11 Synopsis

void shmem_atomic_compare_swap_nbi(TYPE *fetch, TYPE *dest, TYPE cond,
                                   TYPE value, int pe);
void shmem_atomic_compare_swap_nbi(shmem_ctx_t ctx, TYPE *fetch, TYPE *dest,
                                   TYPE cond, TYPE value, int pe);

where TYPE is one of the standard AMO types and has a corresponding TYPENAME specified by Table:6

C/C++ Synopsis

void shmem_TYPENAME_atomic_compare_swap_nbi(TYPE *fetch, TYPE *dest,
                                    TYPE cond, TYPE value, int pe);
void shmem_ctx_TYPENAME_atomic_compare_swap_nbi(shmem_ctx_t ctx, TYPE *fetch,
                                    TYPE *dest, TYPE cond, TYPE value, int pe);

where TYPE is one of the standard AMO types and has a corresponding TYPENAME specified by Table:6

Datatype Reference Table

Table:6

|           TYPE          |      TYPENAME       |
|-------------------------|---------------------|
|   int                   |     int             |
|   long                  |     long            |
|   long long             |     longlong        |
|   unsigned int          |     uint            |
|   unsigned long         |     ulong           |
|   unsigned long long    |     ulonglong       |
|   int32_t               |     int32           |
|   int64_t               |     int64           |
|   uint32_t              |     uint32          |
|   uint64_t              |     uint64          |
|   size_t                |     size            |
|   ptrdiff_t             |     ptrdiff         |

Arguments

ctx    The context on which to perform the operation. When this argument is
       not provided, the operation is performed on SHMEM_CTX_DEFAULT.
fetch  Local address of data object to be updated. The type of fetch should
       match that implied in the SYNOPSIS section.
dest   Symmetric address of the destination data object. The type of dest
       should match that implied in the SYNOPSIS section.
cond   cond is compared to the remote dest value. If cond and the remote dest
       are equal, then value is swapped into the remote dest; otherwise, the
       remote dest is unchanged. The type of cond should match that implied
       in the SYNOPSIS section.
value  The value to be atomically written to the remote PE. The type of value
       should match that implied in the SYNOPSIS section.
pe     An integer that indicates the PE number from which source is to be
       fetched.

Description

The nonblocking conditional swap routines conditionally update a dest data
object on the specified PE as an atomic operation and fetches the prior
contents of the dest data object into the fetch local data object. This
routine returns after initiating the operation. The operation is considered
complete after a subsequent call to shmem_quiet. At the completion of
shmem_quiet, prior contents of the dest data object have been fetched into
fetch local data object and the contents of value have been conditionally
updated into dest on the remote PE

Return Values

None.

Notes

None.