mythread.h revision 207753
1/////////////////////////////////////////////////////////////////////////////// 2// 3/// \file mythread.h 4/// \brief Wrappers for threads 5// 6// Author: Lasse Collin 7// 8// This file has been put into the public domain. 9// You can do whatever you want with this file. 10// 11/////////////////////////////////////////////////////////////////////////////// 12 13#include "sysdefs.h" 14 15 16#ifdef HAVE_PTHREAD 17# include <pthread.h> 18 19# define mythread_once(func) \ 20 do { \ 21 static pthread_once_t once_ = PTHREAD_ONCE_INIT; \ 22 pthread_once(&once_, &func); \ 23 } while (0) 24 25# define mythread_sigmask(how, set, oset) \ 26 pthread_sigmask(how, set, oset) 27 28#else 29 30# define mythread_once(func) \ 31 do { \ 32 static bool once_ = false; \ 33 if (!once_) { \ 34 func(); \ 35 once_ = true; \ 36 } \ 37 } while (0) 38 39# define mythread_sigmask(how, set, oset) \ 40 sigprocmask(how, set, oset) 41 42#endif 43