SF patch #489173: Make os.spawnv not block the interpreter, from
Anthony Roach.
Release the global interpreter lock around platform spawn calls.
Bugfix candidate? Hard to say; I favor "yes, bugfix".
These clearly *should* have been releasing the GIL all along, if for no
other reason than compatibility with the similar os.system(). But it's
possible some program out there is (a) multithreaded, (b) calling a spawn
function with P_WAIT, and (c) relying on the spawn call to block all their
threads until the spawned program completes. I think it's very unlikely
anyone is doing that on purpose, but someone may be doing so by accident.
diff --git a/Misc/ACKS b/Misc/ACKS
index 1ee3f0c..e110f15 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -353,6 +353,7 @@
Armin Rigo
Nicholas Riley
Jean-Claude Rimbault
+Anthony Roach
Andy Robinson
Jim Robinson
Kevin Rodgers
diff --git a/Misc/NEWS b/Misc/NEWS
index 6dd9957..6df0b52 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -52,6 +52,13 @@
Library
+- Functions in the os.spawn() family now release the global interpreter
+ lock around calling the platform spawn. They should always have done
+ this, but did not before 2.2c1. Multithreaded programs calling
+ an os.spawn function with P_WAIT will no longer block all Python threads
+ until the spawned program completes. It's possible that some programs
+ relies on blocking, although more likely by accident than by design.
+
- webbrowser defaults to netscape.exe on OS/2 now.
- Tix.ResizeHandle exposes detach_widget, hide, and show.