]> granicus.if.org Git - gc/commitdiff
2010-02-15 Ivan Maidanski <ivmai@mail.ru> (really Alexandr Shadchin)
authorivmai <ivmai>
Mon, 15 Feb 2010 09:10:29 +0000 (09:10 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:53 +0000 (21:06 +0400)
* pthread_support.c: Include <sys/param.h> and <sys/sysctl.h> for
OpenBSD.
* pthread_support.c (get_ncpu): Define also for Darwin, NetBSD and
OpenBSD.
* pthread_support.c (GC_thr_init): Use get_ncpu() for Darwin,
NetBSD and OpenBSD.

ChangeLog
pthread_support.c

index 42804e48bb93d9c5be20acbdbd96424029dc2c2e..a3a787df97d882d7939c520647e957f338544dd1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-02-15  Ivan Maidanski <ivmai@mail.ru> (really Alexandr Shadchin)
+
+       * pthread_support.c: Include <sys/param.h> and <sys/sysctl.h> for
+       OpenBSD.
+       * pthread_support.c (get_ncpu): Define also for Darwin, NetBSD and
+       OpenBSD.
+       * pthread_support.c (GC_thr_init): Use get_ncpu() for Darwin,
+       NetBSD and OpenBSD.
+
 2010-02-04  Ivan Maidanski <ivmai@mail.ru>
 
        * mallocx.c (GC_generic_malloc_many, GC_malloc_many): Define even
index fc767146d4e5f58167d3cba4720d9ed2d3c8321b..b9e05f397af6105961d1309e1770bd99388852a4 100644 (file)
@@ -71,7 +71,7 @@
 # include <sys/sysctl.h>
 #endif /* GC_DARWIN_THREADS */
 
-#if defined(GC_NETBSD_THREADS)
+#if defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS)
 # include <sys/param.h>
 # include <sys/sysctl.h>
 #endif /* GC_NETBSD_THREADS */
@@ -755,7 +755,8 @@ STATIC void GC_fork_child_proc(void)
   }
 #endif /* GC_DGUX386_THREADS */
 
-#if defined(GC_NETBSD_THREADS)
+#if defined(GC_DARWIN_THREADS) || defined(GC_FREEBSD_THREADS) \
+    || defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS)
   static int get_ncpu(void)
   {
     int mib[] = {CTL_HW,HW_NCPU};
@@ -832,19 +833,10 @@ GC_INNER void GC_thr_init(void)
           GC_nprocs = sysconf(_SC_NPROC_ONLN);
           if (GC_nprocs <= 0) GC_nprocs = 1;
 #       endif
-#       if defined(GC_NETBSD_THREADS)
+#       if defined(GC_DARWIN_THREADS) || defined(GC_FREEBSD_THREADS) \
+           || defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS)
           GC_nprocs = get_ncpu();
 #       endif
-#       if defined(GC_OPENBSD_THREADS)
-          /* FIXME: Implement real "get_ncpu". */
-          GC_nprocs = 2;
-#       endif
-#       if defined(GC_DARWIN_THREADS) || defined(GC_FREEBSD_THREADS)
-          int ncpus = 1;
-          size_t len = sizeof(ncpus);
-          sysctl((int[2]) {CTL_HW, HW_NCPU}, 2, &ncpus, &len, NULL, 0);
-          GC_nprocs = ncpus;
-#       endif
 #       if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
           GC_nprocs = GC_get_nprocs();
 #       endif