Sandia OpenSHMEM is an implementation of the OpenSHMEM specification over multiple Networking APIs, including Portals 4, the Open Fabric Interface (OFI), and UCX. Please click on the Wiki tab for help with building and using SOS.
This PR makes it such that shmem_internal_copy_self will always wait until any pending put operations are complete before returning.
For example, when using OFI with bounce buffers enabled it is possible that shmem_internal_put_nb will not increment the completion value. If completion is zero, the call to shmem_internal_put_wait will not wait for completion of pending/ongoing put transactions before returning, even though the intent of shmem_internal_copy_self is to be blocking.
This PR makes it such that shmem_internal_copy_self will always wait until any pending put operations are complete before returning.
For example, when using OFI with bounce buffers enabled it is possible that shmem_internal_put_nb will not increment the completion value. If completion is zero, the call to shmem_internal_put_wait will not wait for completion of pending/ongoing put transactions before returning, even though the intent of shmem_internal_copy_self is to be blocking.