]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add a crasher for the long-standing issue with closing a file
authorArmin Rigo <arigo@tunes.org>
Sun, 21 Oct 2007 09:14:15 +0000 (09:14 +0000)
committerArmin Rigo <arigo@tunes.org>
Sun, 21 Oct 2007 09:14:15 +0000 (09:14 +0000)
while another thread uses it.

Lib/test/crashers/multithreaded_close.py [new file with mode: 0644]

diff --git a/Lib/test/crashers/multithreaded_close.py b/Lib/test/crashers/multithreaded_close.py
new file mode 100644 (file)
index 0000000..5224341
--- /dev/null
@@ -0,0 +1,14 @@
+# f.close() is not thread-safe: calling it at the same time as another
+# operation (or another close) on the same file, but done from another
+# thread, causes crashes.  The issue is more complicated than it seems,
+# witness the discussions in:
+#
+# http://bugs.python.org/issue595601
+# http://bugs.python.org/issue815646
+
+import thread
+
+while 1:
+    f = open("multithreaded_close.tmp", "w")
+    thread.start_new_thread(f.close, ())
+    f.close()