* cygthread.cc (cygthread::stub): Add better debug output.

(cygthread::cygthread): Ditto.
(cygthread::terminate_thread): Ditto.  Move inuse test earlier or suffer
infinite loop.
* pinfo.cc (_pinfo::dup_proc_pipe): Close handle if DuplicateHandle fails and
process no longer exists.
* spawn.cc (spawn_guts): Create process in suspended state if OS demands it.
* wincap.cc: Add "start_proc_suspended" throughout.
* wincap.h (wincaps): Ditto.
(wincapc): Ditto.
This commit is contained in:
Christopher Faylor
2004-12-28 01:27:26 +00:00
parent 432524c162
commit 57ba174fa0
6 changed files with 58 additions and 21 deletions

View File

@@ -53,7 +53,8 @@ static NO_COPY wincaps wincap_unknown = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_95 = {
@@ -98,7 +99,8 @@ static NO_COPY wincaps wincap_95 = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:true,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_95osr2 = {
@@ -143,7 +145,8 @@ static NO_COPY wincaps wincap_95osr2 = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:true,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_98 = {
@@ -188,7 +191,8 @@ static NO_COPY wincaps wincap_98 = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:true,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_98se = {
@@ -233,7 +237,8 @@ static NO_COPY wincaps wincap_98se = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:true,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_me = {
@@ -278,7 +283,8 @@ static NO_COPY wincaps wincap_me = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:true,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true
};
static NO_COPY wincaps wincap_nt3 = {
@@ -323,7 +329,8 @@ static NO_COPY wincaps wincap_nt3 = {
has_terminal_services:false,
has_switch_to_thread:false,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false
};
static NO_COPY wincaps wincap_nt4 = {
@@ -368,7 +375,8 @@ static NO_COPY wincaps wincap_nt4 = {
has_terminal_services:false,
has_switch_to_thread:true,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false
};
static NO_COPY wincaps wincap_nt4sp4 = {
@@ -413,7 +421,8 @@ static NO_COPY wincaps wincap_nt4sp4 = {
has_terminal_services:false,
has_switch_to_thread:true,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false
};
static NO_COPY wincaps wincap_2000 = {
@@ -458,7 +467,8 @@ static NO_COPY wincaps wincap_2000 = {
has_terminal_services:true,
has_switch_to_thread:true,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:false
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false
};
static NO_COPY wincaps wincap_xp = {
@@ -503,7 +513,8 @@ static NO_COPY wincaps wincap_xp = {
has_terminal_services:true,
has_switch_to_thread:true,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:true
has_ioctl_storage_get_media_types_ex:true,
start_proc_suspended:false
};
static NO_COPY wincaps wincap_2003 = {
@@ -548,7 +559,8 @@ static NO_COPY wincaps wincap_2003 = {
has_terminal_services:true,
has_switch_to_thread:true,
cant_debug_dll_entry:false,
has_ioctl_storage_get_media_types_ex:true
has_ioctl_storage_get_media_types_ex:true,
start_proc_suspended:false
};
wincapc wincap;