* 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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user