X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fthread.hpp;h=b09da7fcef266821e83eed7b5798368dc1b0b570;hb=437035af73d2793065584d606c1bcd50773afc38;hp=05f7fad4522220c4734d56c9fd43568c398b86b6;hpb=97b73d47e6a3d5729ba13304ff355a737a34f1b4;p=awesomized%2Flibmemcached diff --git a/libtest/thread.hpp b/libtest/thread.hpp index 05f7fad4..b09da7fc 100644 --- a/libtest/thread.hpp +++ b/libtest/thread.hpp @@ -46,30 +46,32 @@ namespace thread class Mutex { public: - Mutex() + Mutex() : + _err(0) { - int err; - if ((err= pthread_mutex_init(&_mutex, NULL))) - { - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "pthread_mutex_init: %s", strerror(err)); - } + _err= pthread_mutex_init(&_mutex, NULL); } ~Mutex() { - int err; - if ((err= pthread_mutex_destroy(&_mutex))) + if ((_err= pthread_mutex_destroy(&_mutex))) { - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "pthread_cond_destroy: %s", strerror(err)); + throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "pthread_cond_destroy: %s", strerror(_err)); } } pthread_mutex_t* handle() { + if (_err != 0) + { + throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "pthread_mutex_init: %s", strerror(_err)); + } + return &_mutex; } private: + int _err; pthread_mutex_t _mutex; }; @@ -165,7 +167,7 @@ private: class Barrier { public: - Barrier(uint32_t count): + explicit Barrier(uint32_t count): _threshold(count), _count(count), _generation(0)