33 #if defined(__SVR4) // Solaris 35 extern "C" unsigned int lwp_self(
void);
37 extern "C" int _thr_self(
void);
41 #include <sys/syscall.h> 42 #include <sys/types.h> 49 #if defined(__APPLE__) 50 #include <sys/types.h> 51 #include <sys/sysctl.h> 55 #include <sys/types.h> 56 #include <sys/sysmp.h> 57 #include <sys/sysinfo.h> 61 #include <sys/mpctl.h> 65 extern __declspec(thread) int localThreadId;
68 #if defined(__SVR4) && defined(MAP_ALIGN) 69 extern volatile int anyThreadStackCreated;
89 return _numProcessors;
102 #if defined(__linux) || defined(__APPLE__) 103 np = (int) sysconf(_SC_NPROCESSORS_ONLN);
104 #elif defined(_WIN32) 105 SYSTEM_INFO infoReturn[1];
106 GetSystemInfo (infoReturn);
107 np = (int) (infoReturn->dwNumberOfProcessors);
109 np = (int) sysmp(MP_NAPROCS);
111 np = mpctl(MPC_GETNUMSPUS,
NULL,
NULL);
112 #elif defined(_SC_NPROCESSORS_ONLN) 113 np = (int) (sysconf(_SC_NPROCESSORS_ONLN));
127 #if defined(USE_THREAD_KEYWORD) 128 extern __thread
int localThreadId;
133 return (
unsigned int) pthread_self();
134 #elif defined(_WIN32) 136 return GetCurrentThreadId() >> 2;
137 #elif defined(__APPLE__) 140 unsigned int tid = (
unsigned int) (((
size_t) pthread_self()) >> 12);
142 #elif defined(__BEOS__) 143 return find_thread(0);
144 #elif defined(__linux) 145 return (
unsigned int) ((size_t) pthread_self()) >> 12;
147 #elif defined(PTHREAD_KEYS_MAX) 149 return (
unsigned int) ((size_t) pthread_self()) >> 12;
151 return (
unsigned int) pthread_self();
156 unsigned int pid = (
unsigned int) PRDA->sys_prda.prda_sys.t_pid;
159 #
error "This platform is not currently supported." static int computeNumProcessors()
static unsigned int getThreadId()
static void error(const char *msg)
static int getNumProcessors()
Architecture-independent wrapper to get number of CPUs.