Author: Armin Rigo <[email protected]>
Branch:
Changeset: r61285:b931b891fb14
Date: 2013-02-15 19:49 +0100
http://bitbucket.org/pypy/pypy/changeset/b931b891fb14/
Log: Change my mind again, and put 'signals_enabled' in the new module
'__pypy__.thread'. Thanks Alex.
diff --git a/pypy/module/__pypy__/__init__.py b/pypy/module/__pypy__/__init__.py
--- a/pypy/module/__pypy__/__init__.py
+++ b/pypy/module/__pypy__/__init__.py
@@ -26,6 +26,16 @@
interpleveldefs[name] = "space.wrap(interp_time.%s)" % name
+class ThreadModule(MixedModule):
+ appleveldefs = {
+ 'signals_enabled': 'app_signal.signals_enabled',
+ }
+ interpleveldefs = {
+ '_signals_enter': 'interp_signal.signals_enter',
+ '_signals_exit': 'interp_signal.signals_exit',
+ }
+
+
class Module(MixedModule):
appleveldefs = {
}
@@ -54,6 +64,7 @@
submodules = {
"builders": BuildersModule,
"time": TimeModule,
+ "thread": ThreadModule,
}
def setup_after_space_initialization(self):
diff --git a/pypy/module/thread/app_signal.py
b/pypy/module/__pypy__/app_signal.py
rename from pypy/module/thread/app_signal.py
rename to pypy/module/__pypy__/app_signal.py
--- a/pypy/module/thread/app_signal.py
+++ b/pypy/module/__pypy__/app_signal.py
@@ -1,4 +1,4 @@
-import thread
+import __pypy__.thread
class SignalsEnabled(object):
'''A context manager to use in non-main threads:
@@ -8,7 +8,7 @@
that is within a "with signals_enabled:". This other thread should be
ready to handle unexpected exceptions that the signal handler might
raise --- notably KeyboardInterrupt.'''
- __enter__ = thread._signals_enter
- __exit__ = thread._signals_exit
+ __enter__ = __pypy__.thread._signals_enter
+ __exit__ = __pypy__.thread._signals_exit
signals_enabled = SignalsEnabled()
diff --git a/pypy/module/thread/interp_signal.py
b/pypy/module/__pypy__/interp_signal.py
rename from pypy/module/thread/interp_signal.py
rename to pypy/module/__pypy__/interp_signal.py
diff --git a/pypy/module/thread/test/test_signal.py
b/pypy/module/__pypy__/test/test_signal.py
rename from pypy/module/thread/test/test_signal.py
rename to pypy/module/__pypy__/test/test_signal.py
--- a/pypy/module/thread/test/test_signal.py
+++ b/pypy/module/__pypy__/test/test_signal.py
@@ -2,17 +2,17 @@
class AppTestMinimal:
- spaceconfig = dict(usemodules=['thread'])
+ spaceconfig = dict(usemodules=['__pypy__'])
def test_signal(self):
- import thread
+ from __pypy__ import thread
with thread.signals_enabled:
pass
# assert did not crash
class AppTestThreadSignal:
- spaceconfig = dict(usemodules=['thread', 'signal'])
+ spaceconfig = dict(usemodules=['__pypy__', 'thread', 'signal'])
def setup_class(cls):
if (not cls.runappdirect or
@@ -21,7 +21,7 @@
py.test.skip("this is only a test for -A runs on top of pypy")
def test_enable_signals(self):
- import thread, signal, time
+ import __pypy__, thread, signal, time
#
interrupted = []
lock = thread.allocate_lock()
@@ -30,7 +30,7 @@
def subthread():
try:
time.sleep(0.25)
- with thread.signals_enabled:
+ with __pypy__.thread.signals_enabled:
thread.interrupt_main()
except BaseException, e:
interrupted.append(e)
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
@@ -202,7 +202,7 @@
if not space.threadlocals.signals_enabled():
raise OperationError(space.w_ValueError,
space.wrap("signal only works in main thread "
- "or with thread.enable_signals()"))
+ "or with __pypy__.thread.enable_signals()"))
check_signum_in_range(space, signum)
if space.eq_w(w_handler, space.wrap(SIG_DFL)):
@@ -235,7 +235,7 @@
raise OperationError(
space.w_ValueError,
space.wrap("set_wakeup_fd only works in main thread "
- "or with thread.enable_signals()"))
+ "or with __pypy__.thread.enable_signals()"))
old_fd = pypysig_set_wakeup_fd(fd)
return space.wrap(intmask(old_fd))
diff --git a/pypy/module/thread/__init__.py b/pypy/module/thread/__init__.py
--- a/pypy/module/thread/__init__.py
+++ b/pypy/module/thread/__init__.py
@@ -4,7 +4,6 @@
class Module(MixedModule):
appleveldefs = {
- 'signals_enabled': 'app_signal.signals_enabled',
}
interpleveldefs = {
@@ -21,8 +20,6 @@
'LockType': 'os_lock.Lock',
'_local': 'os_local.Local',
'error': 'space.fromcache(error.Cache).w_error',
- '_signals_enter': 'interp_signal.signals_enter',
- '_signals_exit': 'interp_signal.signals_exit',
}
def __init__(self, space, *args):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit