projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
m4: lost cinttypes
[awesomized/libmemcached]
/
libtest
/
thread.hpp
diff --git
a/libtest/thread.hpp
b/libtest/thread.hpp
index 25fc09939f2b09909c4c800e94b3fdfbfe1c266a..640cb66a06e2f3aac0c6e4ed750ab8b8e21fb356 100644
(file)
--- a/
libtest/thread.hpp
+++ b/
libtest/thread.hpp
@@
-38,6
+38,10
@@
#include <pthread.h>
#include <pthread.h>
+#if __cplusplus < 201103L
+# define noexcept(a)
+#endif
+
namespace libtest
{
namespace thread
namespace libtest
{
namespace thread
@@
-46,30
+50,32
@@
namespace thread
class Mutex
{
public:
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()
+ ~Mutex()
noexcept(false)
{
{
- 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()
{
}
}
pthread_mutex_t* handle()
{
+ if (_err != 0)
+ {
+ throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "pthread_mutex_init: %s", strerror(_err));
+ }
+
return &_mutex;
}
private:
return &_mutex;
}
private:
+ int _err;
pthread_mutex_t _mutex;
};
pthread_mutex_t _mutex;
};
@@
-82,7
+88,7
@@
public:
init();
}
init();
}
- ~ScopedLock()
+ ~ScopedLock()
noexcept(false)
{
int err;
if ((err= pthread_mutex_unlock(_mutex.handle())))
{
int err;
if ((err= pthread_mutex_unlock(_mutex.handle())))
@@
-122,7
+128,7
@@
public:
}
}
}
}
- ~Condition()
+ ~Condition()
noexcept(false)
{
int err;
if ((err= pthread_cond_destroy(&_cond)))
{
int err;
if ((err= pthread_cond_destroy(&_cond)))