Unverified Commit 483a8dc4 authored by John Ericson's avatar John Ericson Committed by GitHub
Browse files

Merge pull request #317227 from rhelmot/freebsd-nix-boehmgc

nix: make boehmgc patch respect HAVE_PTHREAD_ATTR_GET_NP
parents c5b1ce10 f9b9794d
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -11,14 +11,23 @@ index 2b45489..0e6d8ef 100644
     GC_bool found_me = FALSE;
     size_t nthreads = 0;
     int i;
@@ -868,6 +870,31 @@ GC_INNER void GC_push_all_stacks(void)
@@ -868,6 +870,40 @@ GC_INNER void GC_push_all_stacks(void)
             hi = p->altstack + p->altstack_size;
 #         endif
           /* FIXME: Need to scan the normal stack too, but how ? */
+        } else {
+          #ifdef HAVE_PTHREAD_ATTR_GET_NP
+          if (pthread_attr_init(&pattr) != 0) {
+            ABORT("GC_push_all_stacks: pthread_attr_init failed!");
+          }
+          if (pthread_attr_get_np(p->id, &pattr) != 0) {
+            ABORT("GC_push_all_stacks: pthread_attr_get_np failed!");
+          }
+          #else
+          if (pthread_getattr_np(p->id, &pattr)) {
+            ABORT("GC_push_all_stacks: pthread_getattr_np failed!");
+          }
+          #endif
+          if (pthread_attr_getstacksize(&pattr, &stack_limit)) {
+            ABORT("GC_push_all_stacks: pthread_attr_getstacksize failed!");
+          }