summaryrefslogtreecommitdiff
path: root/tests/thread/thread_shared1.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/thread/thread_shared1.py')
-rw-r--r--tests/thread/thread_shared1.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/tests/thread/thread_shared1.py b/tests/thread/thread_shared1.py
index 582b01fc3..251e26fae 100644
--- a/tests/thread/thread_shared1.py
+++ b/tests/thread/thread_shared1.py
@@ -18,15 +18,25 @@ def thread_entry(n, tup):
lock = _thread.allocate_lock()
-n_thread = 2
+n_thread = 0
+n_thread_max = 2
n_finished = 0
# the shared data structure
tup = (1, 2, 3, 4)
# spawn threads
-for i in range(n_thread):
- _thread.start_new_thread(thread_entry, (100, tup))
+for _ in range(n_thread_max):
+ try:
+ _thread.start_new_thread(thread_entry, (100, tup))
+ n_thread += 1
+ except OSError:
+ # System cannot create a new thead, so stop trying to create them.
+ break
+
+# also run the function on this main thread
+thread_entry(100, tup)
+n_thread += 1
# busy wait for threads to finish
while n_finished < n_thread: