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

Reply via email to