40 #ifndef headerfilettmaththreads 41 #define headerfilettmaththreads 45 #ifdef TTMATH_WIN32_THREADS 50 #ifdef TTMATH_POSIX_THREADS 66 #ifdef TTMATH_WIN32_THREADS 79 #define TTMATH_MULTITHREADS_HELPER 90 void CreateName(
char * buffer)
const 93 #pragma warning (disable : 4996) 97 sprintf(buffer,
"TTMATH_LOCK_%ul", (
unsigned long)GetCurrentProcessId());
100 #pragma warning (default : 4996) 112 mutex_handle = CreateMutexA(0,
false, buffer);
114 if( mutex_handle == 0 )
117 WaitForSingleObject(mutex_handle, INFINITE);
131 if( mutex_handle != 0 )
133 ReleaseMutex(mutex_handle);
134 CloseHandle(mutex_handle);
139 #endif // #ifdef TTMATH_WIN32_THREADS 145 #ifdef TTMATH_POSIX_THREADS 157 #define TTMATH_MULTITHREADS_HELPER \ 160 pthread_mutex_t ttmath_mutex = PTHREAD_MUTEX_INITIALIZER; \ 199 if( pthread_mutex_lock(&ttmath_mutex) != 0 )
208 pthread_mutex_unlock(&ttmath_mutex);
212 #endif // #ifdef TTMATH_POSIX_THREADS 217 #if !defined(TTMATH_POSIX_THREADS) && !defined(TTMATH_WIN32_THREADS) 225 #define TTMATH_MULTITHREADS_HELPER 243 #endif // #if !defined(TTMATH_POSIX_THREADS) && !defined(TTMATH_WIN32_THREADS) pthread_mutex_t ttmath_mutex
a namespace for the TTMath library
constants used in the library
objects of this class are used to synchronize