Что не так с этим кодом? Когда объект 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]));
}
}
}
}
Задача ещё не решена.
Других решений пока нет …