shmemx_fadd_nb

The nonblocking atomic routine performs an atomic fetch-and-add operation
on a remote data object.

Definitions

C11 Synopsis

void shmemx_fadd_nb(TYPE *fetch, TYPE *target, TYPE value, int pe,
    void **transfer_handle);

where TYPE is one of the standard AMO types specified by Table:6

C/C++ Synopsis

void shmemx_TYPENAME_fadd_nb(TYPE *fetch, TYPE *target, TYPE value, int pe,
    void **transfer_handle);

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

fetch   Local address of data object to be updated. The type of fetch should
        match that implied in the SYNOPSIS section.
target  Symmetric address of the destination data object. The type of target
        should match that implied in the SYNOPSIS section.
value   The operand to the atomic fetch-and-add operation. The type of value
        should match that implied in the SYNOPSIS section.
pe      An integer that indicates the PE number on which target is to be
        updated.  When using Fortran, it must be a default integer value.
transfer_handle Not utilizated. Supply NULL.

Description

The nonblocking shmemx_fadd_nb routines perform an atomic fetch-and-add
operation. This routine returns after initiating the operation. An atomic
fetch-and-add operation fetches the old target and adds value to
target without the possibility of another atomic operation on the target
between the time of the fetch and the update. 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, value has
been added to target on pe and the prior contents of target fetched into the
fetch local data object.

Return Values

None.

Notes

None.