aboutsummaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-11-06 10:05:23 +0100
committerClifford Wolf <clifford@clifford.at>2018-11-06 10:05:23 +0100
commit79075d123f749ad39bf35f658f00a79a24efcf98 (patch)
treeb91383c85fb3de6b7359ba228376421550ae7a6e /backends
parent719e29404a74db8f994c9c3dc0d6b6e8d7f114a7 (diff)
downloadyosys-79075d123f749ad39bf35f658f00a79a24efcf98.tar.gz
yosys-79075d123f749ad39bf35f658f00a79a24efcf98.tar.bz2
yosys-79075d123f749ad39bf35f658f00a79a24efcf98.zip
Improve stack rlimit code in smtio.py
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'backends')
-rw-r--r--backends/smt2/smtio.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/backends/smt2/smtio.py b/backends/smt2/smtio.py
index e8ed5e63b..e417b7758 100644
--- a/backends/smt2/smtio.py
+++ b/backends/smt2/smtio.py
@@ -31,16 +31,16 @@ from threading import Thread
# does not run out of stack frames when parsing large expressions
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, smtio_stacklimit))
+
+ smtio_stacksize = 128 * 1024 * 1024
+ current_rlimit_stack = resource.getrlimit(resource.RLIMIT_STACK)
+ if current_rlimit_stack[0] != resource.RLIM_INFINITY:
+ if current_rlimit_stack[1] != resource.RLIM_INFINITY:
+ smtio_stacksize = min(smtio_stacksize, smtio_stacklimit)
+ if current_rlimit_stack[0] < smtio_stacksize:
+ resource.setrlimit(resource.RLIMIT_STACK, (smtio_stacksize, current_rlimit_stack[1]))
# currently running solvers (so we can kill them)