35 lines
669 B
C
35 lines
669 B
C
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
/// \file mythread.h
|
||
|
/// \brief Wrappers for threads
|
||
|
//
|
||
|
// Author: Lasse Collin
|
||
|
// This file has been put into the public domain.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#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)
|
||
|
|
||
|
#else
|
||
|
|
||
|
# define mythread_once(func) \
|
||
|
do { \
|
||
|
static bool once_ = false; \
|
||
|
if (!once_) { \
|
||
|
func(); \
|
||
|
once_ = true; \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
#endif
|