]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Module to test threads
authorGuido van Rossum <guido@python.org>
Thu, 14 Apr 1994 20:28:41 +0000 (20:28 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 14 Apr 1994 20:28:41 +0000 (20:28 +0000)
Lib/test/test_thread.py [new file with mode: 0644]

diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
new file mode 100644 (file)
index 0000000..5bc3076
--- /dev/null
@@ -0,0 +1,41 @@
+# Very rudimentary test of thread module
+
+# Create a bunch of threads, let each do some work, wait until all are done
+
+import whrandom
+import thread
+import time
+
+mutex = thread.allocate_lock()
+running = 0
+done = thread.allocate_lock()
+done.acquire()
+
+def task(ident):
+       global running
+       delay = whrandom.random() * 10
+       print 'task', ident, 'will run for', delay, 'sec'
+       time.sleep(delay)
+       print 'task', ident, 'done'
+       mutex.acquire()
+       running = running - 1
+       if running == 0:
+               done.release()
+       mutex.release()
+
+next_ident = 0
+def newtask():
+       global next_ident, running
+       mutex.acquire()
+       next_ident = next_ident + 1
+       print 'creating task', next_ident
+       thread.start_new_thread(task, (next_ident,))
+       running = running + 1
+       mutex.release()
+
+for i in range(10):
+       newtask()
+
+print 'waiting for all tasks to complete'
+done.acquire()
+print 'all tasks done'