in sgx_ustdc/event.c [284:317]
int u_thread_wait_event_ocall(int *error, const tcs_handle_t tcs, const struct timespec *timeout)
{
se_handle_t se_event = NULL;
if (error)
*error = EINVAL;
if (tcs == NULL) {
return -1;
}
se_event = get_tcs_event(tcs);
if (se_event == NULL) {
return -1;
}
int ret = 0;
if (timeout == NULL) {
ret = se_event_wait(se_event);
} else {
ret = se_event_wait_timeout(se_event, timeout);
}
if (ret != 0) {
if (error) {
*error = errno;
}
return -1;
}
if (error)
*error = 0;
return 0;
}