Operation Progress Tracking

oneCCL communication operation shall return a request object to be used for tracking the operation’s progress.

The request class shall provide the ability to wait for completion of an operation in a blocking manner, the ability to check the completion status in a non-blocking manner, and the ability to retrieve the underlying event object that is signaled when the device communication operation completes on the device.

Request

using request_t = unique_ptr_class<request>;
using event_t = unique_ptr_class<event>;

Waiting for the completion of an operation in a blocking manner:

void request::wait();

Checking for the completion of an operation in a non-blocking manner:

bool request::test();
return bool

true if the operation has been completed false if the operation has not been completed

Retrieving an event object that is signaled when the device communication operation completes on the device:

event_t request::get_event() const;
return event_t

an event object that is signaled when the communication operation completes on the device