[pypy-commit] pypy default: Add a bunch of @jit.dont_look_inside. Recent reorganization
arigo
noreply at buildbot.pypy.org
Tue Jun 12 15:09:20 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r55608:560f51d78f4b
Date: 2012-06-12 15:08 +0200
http://bitbucket.org/pypy/pypy/changeset/560f51d78f4b/
Log: Add a bunch of @jit.dont_look_inside. Recent reorganization means
that the jit would now try to look into perform_signal() and fail on
'pypysig_reinstall'.
diff --git a/pypy/module/signal/interp_signal.py b/pypy/module/signal/interp_signal.py
--- a/pypy/module/signal/interp_signal.py
+++ b/pypy/module/signal/interp_signal.py
@@ -143,6 +143,7 @@
else:
self.reissue_signal_action = None
+ @jit.dont_look_inside
def perform(self, executioncontext, frame):
while True:
n = pypysig_poll()
@@ -150,6 +151,7 @@
break
self.perform_signal(executioncontext, n)
+ @jit.dont_look_inside
def perform_signal(self, executioncontext, n):
if self.reissue_signal_action is None:
# no threads: we can report the signal immediately
@@ -165,11 +167,13 @@
self.pending_signals[n] = None
self.reissue_signal_action.fire_after_thread_switch()
+ @jit.dont_look_inside
def set_interrupt(self):
"Simulates the effect of a SIGINT signal arriving"
ec = self.space.getexecutioncontext()
self.perform_signal(ec, cpy_signal.SIGINT)
+ @jit.dont_look_inside
def report_signal(self, n):
try:
w_handler = self.handlers_w[n]
@@ -183,6 +187,7 @@
w_frame = space.wrap(ec.gettopframe_nohidden())
space.call_function(w_handler, space.wrap(n), w_frame)
+ @jit.dont_look_inside
def report_pending_signals(self):
# XXX this logic isn't so complicated but I have no clue how
# to test it :-(
@@ -305,6 +310,7 @@
action.handlers_w[signum] = w_handler
return old_handler
+ at jit.dont_look_inside
@unwrap_spec(fd=int)
def set_wakeup_fd(space, fd):
"""Sets the fd to be written to (with '\0') when a signal
@@ -323,6 +329,7 @@
old_fd = pypysig_set_wakeup_fd(fd)
return space.wrap(intmask(old_fd))
+ at jit.dont_look_inside
@unwrap_spec(signum=int, flag=int)
def siginterrupt(space, signum, flag):
check_signum_exists(space, signum)
More information about the pypy-commit
mailing list