From 2b935421718c9a8d8f2183d9cb4a4973c078bcfa Mon Sep 17 00:00:00 2001
From: Arjen Roodselaar <arjen@fb.com>
Date: Sun, 4 Nov 2018 21:58:09 -0800
Subject: Use conservative stack size for SMT2 on MacOS

---
 backends/smt2/smtio.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/backends/smt2/smtio.py b/backends/smt2/smtio.py
index 3fc823e3e..e8ed5e63b 100644
--- a/backends/smt2/smtio.py
+++ b/backends/smt2/smtio.py
@@ -32,10 +32,15 @@ from threading import Thread
 if os.name == "posix":
     smtio_reclimit = 64 * 1024
     smtio_stacksize = 128 * 1024 * 1024
+    smtio_stacklimit = resource.RLIM_INFINITY
+    if os.uname().sysname == "Darwin":
+        # MacOS has rather conservative stack limits
+        smtio_stacksize = 16 * 1024 * 1024
+        smtio_stacklimit = resource.getrlimit(resource.RLIMIT_STACK)[1]
     if sys.getrecursionlimit() < smtio_reclimit:
         sys.setrecursionlimit(smtio_reclimit)
     if resource.getrlimit(resource.RLIMIT_STACK)[0] < smtio_stacksize:
-        resource.setrlimit(resource.RLIMIT_STACK, (smtio_stacksize, -1))
+        resource.setrlimit(resource.RLIMIT_STACK, (smtio_stacksize, smtio_stacklimit))
 
 
 # currently running solvers (so we can kill them)
-- 
cgit v1.2.3