root/src/common/mythread.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


///////////////////////////////////////////////////////////////////////////////
//
/// \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

/* [<][>][^][v][top][bottom][index][help] */