diff options
author | William D. Jones <thor0505@comcast.net> | 2018-07-06 01:36:41 -0400 |
---|---|---|
committer | William D. Jones <thor0505@comcast.net> | 2018-07-06 01:44:34 -0400 |
commit | 0caa62802ccb3ee67e05c948a9e334504cae9cc4 (patch) | |
tree | dea1efe72a73fde529f8a8f3d57a818c713a9605 | |
parent | 8b92ddb9d2635c30636b17ff3d24bc09a44b8551 (diff) | |
download | yosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.tar.gz yosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.tar.bz2 yosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.zip |
Gate POSIX-only signals and resource module to only run on POSIX Python implementations.
-rw-r--r-- | backends/smt2/smtio.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/backends/smt2/smtio.py b/backends/smt2/smtio.py index 1a8d2484c..3fc823e3e 100644 --- a/backends/smt2/smtio.py +++ b/backends/smt2/smtio.py @@ -17,7 +17,9 @@ # import sys, re, os, signal -import resource, subprocess +import subprocess +if os.name == "posix": + import resource from copy import deepcopy from select import select from time import time @@ -27,12 +29,13 @@ from threading import Thread # This is needed so that the recursive SMT2 S-expression parser # does not run out of stack frames when parsing large expressions -smtio_reclimit = 64 * 1024 -smtio_stacksize = 128 * 1024 * 1024 -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)) +if os.name == "posix": + smtio_reclimit = 64 * 1024 + smtio_stacksize = 128 * 1024 * 1024 + 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)) # currently running solvers (so we can kill them) @@ -51,8 +54,9 @@ def force_shutdown(signum, frame): os.kill(p.pid, signal.SIGTERM) sys.exit(1) +if os.name == "posix": + signal.signal(signal.SIGHUP, force_shutdown) signal.signal(signal.SIGINT, force_shutdown) -signal.signal(signal.SIGHUP, force_shutdown) signal.signal(signal.SIGTERM, force_shutdown) def except_hook(exctype, value, traceback): @@ -1053,4 +1057,3 @@ class MkVcd: print("b0 %s" % self.nets[path][0], file=self.f) else: print("b1 %s" % self.nets[path][0], file=self.f) - |