int u_thread_wait_event_ocall()

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;
}