diff options
author | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-03-18 04:56:06 (GMT) |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-03-18 04:56:06 (GMT) |
commit | a14585308af777aa64ec7100472d3c3e2961a6e7 (patch) | |
tree | 08cdd0a5d65186ee96690ba627c6997d2fa2b00e | |
parent | b1d3d96374294904a13717403c80035718331092 (diff) | |
download | cpython-a14585308af777aa64ec7100472d3c3e2961a6e7.zip cpython-a14585308af777aa64ec7100472d3c3e2961a6e7.tar.gz cpython-a14585308af777aa64ec7100472d3c3e2961a6e7.tar.bz2 |
Speed test_thread up from 51.328s to 0.081s by reducing its sleep times. We
still sleep at all to make it likely that all threads are active at the same
time.
-rw-r--r-- | Lib/test/test_thread.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py index f0d66c7..ffd5244 100644 --- a/Lib/test/test_thread.py +++ b/Lib/test/test_thread.py @@ -10,10 +10,13 @@ NUMTASKS = 10 NUMTRIPS = 3 +_print_mutex = thread.allocate_lock() + def verbose_print(arg): """Helper function for printing out debugging output.""" if test_support.verbose: - print arg + with _print_mutex: + print arg class BasicThreadTest(unittest.TestCase): @@ -38,8 +41,8 @@ class ThreadRunningTests(BasicThreadTest): def task(self, ident): with self.random_mutex: - delay = random.random() * NUMTASKS - verbose_print("task %s will run for %s" % (ident, round(delay, 1))) + delay = random.random() / 10000.0 + verbose_print("task %s will run for %sus" % (ident, round(delay*1e6))) time.sleep(delay) verbose_print("task %s done" % ident) with self.running_mutex: @@ -138,11 +141,12 @@ class BarrierTest(BasicThreadTest): # give it a good chance to enter the next # barrier before the others are all out # of the current one - delay = 0.001 + delay = 0 else: with self.random_mutex: - delay = random.random() * NUMTASKS - verbose_print("task %s will run for %s" % (ident, round(delay, 1))) + delay = random.random() / 10000.0 + verbose_print("task %s will run for %sus" % + (ident, round(delay * 1e6))) time.sleep(delay) verbose_print("task %s entering %s" % (ident, i)) self.bar.enter() |