aboutsummaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorWilliam D. Jones <thor0505@comcast.net>2018-07-06 01:36:41 -0400
committerWilliam D. Jones <thor0505@comcast.net>2018-07-06 01:44:34 -0400
commit0caa62802ccb3ee67e05c948a9e334504cae9cc4 (patch)
treedea1efe72a73fde529f8a8f3d57a818c713a9605 /backends
parent8b92ddb9d2635c30636b17ff3d24bc09a44b8551 (diff)
downloadyosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.tar.gz
yosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.tar.bz2
yosys-0caa62802ccb3ee67e05c948a9e334504cae9cc4.zip
Gate POSIX-only signals and resource module to only run on POSIX Python implementations.
Diffstat (limited to 'backends')
-rw-r--r--backends/smt2/smtio.py21
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)
-