37 #ifndef __igtlMultiThreader_h
38 #define __igtlMultiThreader_h
46 #ifdef OpenIGTLink_USE_SPROC
47 #include <sys/types.h>
51 #if defined(OpenIGTLink_USE_PTHREAD) || defined(OpenIGTLink_HP_PTHREAD)
53 #include <sys/types.h>
75 #ifdef OpenIGTLink_USE_SPROC
76 #define IGTL_MAX_THREADS 128
79 #ifdef OpenIGTLink_USE_PTHREADS
80 #define IGTL_MAX_THREADS 128
83 #ifdef OpenIGTLink_USE_WIN32_THREADS
84 #define IGTL_MAX_THREADS 128
89 #undef IGTL_MAX_THREADS
90 #define IGTL_MAX_THREADS 128
94 #if defined(__MINGW32__)
95 #undef IGTL_MAX_THREADS
96 #define IGTL_MAX_THREADS 1
100 #if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730
101 #undef IGTL_MAX_THREADS
102 #define IGTL_MAX_THREADS 1
105 #ifndef IGTL_MAX_THREADS
106 #define IGTL_MAX_THREADS 1
109 #ifdef OpenIGTLink_USE_SPROC
114 #ifdef OpenIGTLink_USE_PTHREADS
115 typedef void *(*ThreadFunctionType)(
void *);
120 #ifdef OpenIGTLink_USE_WIN32_THREADS
126 #if !defined(OpenIGTLink_USE_PTHREADS) && !defined(OpenIGTLink_USE_WIN32_THREADS)
159 #define ThreadInfoStruct MultiThreader::ThreadInfo
176 virtual int GetNumberOfThreads();
182 static void SetGlobalMaximumNumberOfThreads(
int val);
183 static int GetGlobalMaximumNumberOfThreads();
189 static void SetGlobalDefaultNumberOfThreads(
int val);
190 static int GetGlobalDefaultNumberOfThreads();
200 void SingleMethodExecute();
206 void MultipleMethodExecute();
229 void TerminateThread(
int thread_id );
244 void PrintSelf(std::ostream& os)
const;