/* [<][>][^][v][top][bottom][index][help] */
///////////////////////////////////////////////////////////////////////////////
//
/// \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