Pthreads for Win32
Пишешь что-то кроссплатформенное? Или просто под винду?
В общем, если кто-то знает, то вот кусок кода:
int sError, res;
while res = sem_trywait(&sem && (sError = errno)==EINTR);
if (!res)
return true;
else if (sError == EAGAIN)
return false;
else
throw SemaphoreException("Error on semaphore waiting (trywait)", sError);
Если семафору сделать sem_post, потом sem_wait, а затем sem_trywait (точнее, описанный выше код ты управление передается на последний пункт, что вызов исключения. При этом дебаг показывает, что sError (т.е. errno) равен нулю. Мне кажется это странным, я думаю, может библиотека pthreads под винду неправильно errno устанавливает?
Под линуксом еще не тестил.
Оставить комментарий
erotic
Кто-нибудь использовал?