Waiting for a Local Event
A sender can send a signal to a receiver in the same or different thread.
A receiver in the same or a different thread can be notified of the signal being sent by sender.
The receiver uses WaitForEvent
for a single signal or
WaitForMultipleEvents/WaitForMultipleEventsSafe
for multiple
signals or mixed events associated with an endpoint.
Note:
WaitForEvent() is an event-blocking call. It must be called from a single thread only.
Here is a list of supported events:
- Single native event
- Single local events
Wait for a local event
NvSciEventLoopService *eventLoopService;
NvSciLocalEvent *localEvent;
NvSciError err;
int64_t timeout;
timeout = NV_SCI_EVENT_INFINITE_WAIT;
while (1) {
err = eventLoopService->WaitForEvent(localEvent->eventNotifier, timeout);
if(err != NvSciError_Success) {
printf("error in waiting event\n");
goto fail;
}
}
/* Do something with the local event notified */
}