Operation Progress Tracking

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

The event 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 native object that is signaled when the operation completes.

Event

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

void event::wait();

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

bool event::test();
return bool

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

Retrieving a native object that is signaled when the operation completes:

native_event_type event::get_native();
return native_event_type
a native object that is signaled when the operation completes
shall throw an exception if an event object does not wrap the native object