/
niceSOFT
/
valgrind
Обзор
Документация
Войти
/
niceSOFT
/
valgrind
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
drd/tests/sem_wait.cpp
42 строки
918 B
Bart Van Assche
drd/tests: Add test program that makes sem_trywait() return a non-zero value
24 авг 2012, 21:57
24 авг 2012, 21:57
04a00aa
Код
Авторство
О чём код?
#include <iostream> #include <cerrno> #include <cstring> #include <pthread.h> #include <semaphore.h> struct FailedOn { FailedOn(const char *f, int e) : func(f), eno(e) {} std::string func; int eno; }; int main(void) { try { sem_t mySemaphore; if (sem_init(&mySemaphore, 0, 0) != 0) throw FailedOn("sem_init", errno); std::cerr << "Calling sem_trywait\n"; if (sem_trywait(&mySemaphore) != 0) { if (errno != EAGAIN) throw FailedOn("sem_trywait", errno); std::cerr << "Wait would have blocked" << std::endl; } else { std::cerr << "Wait succeeded" << std::endl; } if (sem_destroy(&mySemaphore) != 0) throw FailedOn("sem_destroy", errno); return 0; } catch (FailedOn &e) { std::cerr << e.func << " failed: " << strerror(e.eno) << std::endl; } catch (...) { std::cerr << "Unknown exception" << std::endl; } return -1; }