From 6e4656cc95ad504a42080bcaf8afc80fec7be2d6 Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Thu, 7 Nov 2019 11:45:21 -0500
Subject: [PATCH] rts/nonmoving: Catch failure of createOSThread

---
 rts/sm/NonMoving.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/rts/sm/NonMoving.c b/rts/sm/NonMoving.c
index 50cf784aab61..20ec5a45bac2 100644
--- a/rts/sm/NonMoving.c
+++ b/rts/sm/NonMoving.c
@@ -896,8 +896,10 @@ void nonmovingCollect(StgWeak **dead_weaks, StgTSO **resurrected_threads)
         concurrent_coll_running = true;
         nonmoving_write_barrier_enabled = true;
         debugTrace(DEBUG_nonmoving_gc, "Starting concurrent mark thread");
-        createOSThread(&mark_thread, "non-moving mark thread",
-                       nonmovingConcurrentMark, mark_queue);
+        if (createOSThread(&mark_thread, "non-moving mark thread",
+                           nonmovingConcurrentMark, mark_queue) != 0) {
+            barf("nonmovingCollect: failed to spawn mark thread: %s", strerror(errno));
+        }
     } else {
         nonmovingConcurrentMark(mark_queue);
     }
-- 
GitLab