diff options
Diffstat (limited to 'Build/source/utils/xz-4.999.9beta/src/common/mythread.h')
-rw-r--r-- | Build/source/utils/xz-4.999.9beta/src/common/mythread.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Build/source/utils/xz-4.999.9beta/src/common/mythread.h b/Build/source/utils/xz-4.999.9beta/src/common/mythread.h new file mode 100644 index 00000000000..476c2fc9e10 --- /dev/null +++ b/Build/source/utils/xz-4.999.9beta/src/common/mythread.h @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file mythread.h +/// \brief Wrappers for threads +// +// Author: Lasse Collin +// +// This file has been put into the public domain. +// You can do whatever you want with this file. +// +/////////////////////////////////////////////////////////////////////////////// + +#include "sysdefs.h" + + +#ifdef HAVE_PTHREAD +# include <pthread.h> + +# define mythread_once(func) \ + do { \ + static pthread_once_t once_ = PTHREAD_ONCE_INIT; \ + pthread_once(&once_, &func); \ + } while (0) + +# define mythread_sigmask(how, set, oset) \ + pthread_sigmask(how, set, oset) + +#else + +# define mythread_once(func) \ + do { \ + static bool once_ = false; \ + if (!once_) { \ + func(); \ + once_ = true; \ + } \ + } while (0) + +# define mythread_sigmask(how, set, oset) \ + sigprocmask(how, set, oset) + +#endif |