]> granicus.if.org Git - python/commitdiff
Fix bootstrap issues when building without threads
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Nov 2010 19:58:28 +0000 (19:58 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Nov 2010 19:58:28 +0000 (19:58 +0000)
Lib/_dummy_thread.py
Lib/reprlib.py

index e10bae844f78d8d2aa9b3987d2b318759bad2464..ed50520ab322ada9a701e500c00091e0a93de521 100644 (file)
@@ -16,12 +16,14 @@ Suggested usage is::
 __all__ = ['error', 'start_new_thread', 'exit', 'get_ident', 'allocate_lock',
            'interrupt_main', 'LockType']
 
-import traceback as _traceback
-import time
-
 # A dummy value
 TIMEOUT_MAX = 2**31
 
+# NOTE: this module can be imported early in the extension building process,
+# and so top level imports of other modules should be avoided.  Instead, all
+# imports are done when needed on a function-by-function basis.  Since threads
+# are disabled, the import lock should not be an issue anyway (??).
+
 class error(Exception):
     """Dummy implementation of _thread.error."""
 
@@ -52,7 +54,8 @@ def start_new_thread(function, args, kwargs={}):
     except SystemExit:
         pass
     except:
-        _traceback.print_exc()
+        import traceback
+        traceback.print_exc()
     _main = True
     global _interrupt
     if _interrupt:
@@ -116,6 +119,7 @@ class LockType(object):
                 return True
             else:
                 if timeout > 0:
+                    import time
                     time.sleep(timeout)
                 return False
 
index c44c75c8b3f4ba05312793bbdd0bceccfa6ab460..7b5c436c39e1a870839a88ebf011fc8eecae9fa4 100644 (file)
@@ -6,7 +6,7 @@ import builtins
 from itertools import islice
 try:
     from _thread import get_ident
-except AttributeError:
+except ImportError:
     from _dummy_thread import get_ident
 
 def recursive_repr(fillvalue='...'):