42 lines
879 B
C
42 lines
879 B
C
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
/// \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
|