From cfa46376c709e58e6cdbe41e2d8674dc0ee29184 Mon Sep 17 00:00:00 2001 From: davidxu Date: Tue, 8 Aug 2006 04:42:41 +0000 Subject: Get number of CPUs and ignore spin count on single processor machine. --- lib/libthr/thread/thr_init.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/libthr/thread/thr_init.c') diff --git a/lib/libthr/thread/thr_init.c b/lib/libthr/thread/thr_init.c index 1150985..5d1aae5 100644 --- a/lib/libthr/thread/thr_init.c +++ b/lib/libthr/thread/thr_init.c @@ -99,6 +99,7 @@ struct pthread_cond_attr _pthread_condattr_default = { }; pid_t _thr_pid; +int _thr_smp_cpus = 1; size_t _thr_guard_default; size_t _thr_stack_default = THR_STACK_DEFAULT; size_t _thr_stack_initial = THR_STACK_INITIAL; @@ -443,6 +444,8 @@ init_private(void) len = sizeof (_usrstack); if (sysctl(mib, 2, &_usrstack, &len, NULL, 0) == -1) PANIC("Cannot get kern.usrstack from sysctl"); + len = sizeof(_thr_smp_cpus); + sysctlbyname("kern.smp.cpus", &_thr_smp_cpus, &len, NULL, 0); _thr_page_size = getpagesize(); _thr_guard_default = _thr_page_size; _pthread_attr_default.guardsize_attr = _thr_guard_default; -- cgit v1.1