summaryrefslogtreecommitdiff
path: root/os_spawnv_fix.diff
blob: 926f896c1f2080be27750ea934dbb01969f24c10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
? dist/src/Mac/IDE scripts/Hold option to open a script
? dist/src/Mac/IDE scripts/Insert file name
? dist/src/Mac/IDE scripts/Insert folder name
? dist/src/Mac/IDE scripts/Search Python Documentation
? dist/src/Mac/IDE scripts/Hack/Remove .pyc files
? dist/src/Mac/IDE scripts/Hack/Toolbox Assistant
Index: dist/src/Modules/posixmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/posixmodule.c,v
retrieving revision 2.213
diff -c -c -r2.213 posixmodule.c
*** dist/src/Modules/posixmodule.c	2001/12/03 20:41:00	2.213
--- dist/src/Modules/posixmodule.c	2001/12/05 00:52:58
***************
*** 1668,1674 ****
  #ifdef HAVE_SPAWNV
  static char posix_spawnv__doc__[] =
  "spawnv(mode, path, args)\n\
! Execute an executable path with arguments, replacing current process.\n\
  \n\
  	mode: mode of process creation\n\
  	path: path of executable file\n\
--- 1668,1674 ----
  #ifdef HAVE_SPAWNV
  static char posix_spawnv__doc__[] =
  "spawnv(mode, path, args)\n\
! Execute the program 'path' in a new process.\n\
  \n\
  	mode: mode of process creation\n\
  	path: path of executable file\n\
***************
*** 1717,1724 ****
  
  	if (mode == _OLD_P_OVERLAY)
  		mode = _P_OVERLAY;
  	spawnval = _spawnv(mode, path, argvlist);
! 
  	PyMem_DEL(argvlist);
  
  	if (spawnval == -1)
--- 1717,1727 ----
  
  	if (mode == _OLD_P_OVERLAY)
  		mode = _P_OVERLAY;
+ 	
+ 	Py_BEGIN_ALLOW_THREADS
  	spawnval = _spawnv(mode, path, argvlist);
! 	Py_END_ALLOW_THREADS
! 	
  	PyMem_DEL(argvlist);
  
  	if (spawnval == -1)
***************
*** 1734,1740 ****
  
  static char posix_spawnve__doc__[] =
  "spawnve(mode, path, args, env)\n\
! Execute a path with arguments and environment, replacing current process.\n\
  \n\
  	mode: mode of process creation\n\
  	path: path of executable file\n\
--- 1737,1743 ----
  
  static char posix_spawnve__doc__[] =
  "spawnve(mode, path, args, env)\n\
! Execute the program 'path' in a new process.\n\
  \n\
  	mode: mode of process creation\n\
  	path: path of executable file\n\
***************
*** 1830,1836 ****
--- 1833,1843 ----
  
  	if (mode == _OLD_P_OVERLAY)
  		mode = _P_OVERLAY;
+ 
+ 	Py_BEGIN_ALLOW_THREADS
  	spawnval = _spawnve(mode, path, argvlist, envlist);
+ 	Py_END_ALLOW_THREADS
+ 
  	if (spawnval == -1)
  		(void) posix_error();
  	else