sem_timedwait вызывает "Средство futex вернуло неожиданный код ошибки"

Что не так с этим кодом? Когда объект sem размещен, это нормально. Однако, как только ему нужно дождаться истечения времени ожидания, я получаю "Средство futex вернуло неожиданный код ошибки".

void* BackgroudProc(void*){
    struct timespec ts;
    while(1){
        clock_gettime(CLOCK_REALTIME, &ts);
        ts.tv_sec += 10;
        sem_timedwait(&hFCRequestEvt, &ts);
        for(int i = 0; i < requests.size(); i++){
            if(numOfConnection >= MAX_CONNECTION)
                break;
            if(requests[i].state == QUEUED){
                requests[i].state = STARTED;
                numOfConnection++;
                pthread_create(&requests[i].tid, 0, (void* (*)(void*))FileCopyFSM, (void*)(&requests[i]));
            }
        }
    }
}

0 ответов

Другие вопросы по тегам