* fork.cc (vfork): Store complete stack frame in vfork_save structure for later
recovery. * spawn.cc (spawn_guts): Reorganize slightly to consolidate handling when there is a CreateProcess error. (_spawnve): Only longjmp back to vfork handling when a process has been successfuly started. * winsup.h (vfork_save): Extend to include frame info. Remove obsolete cpplus conditionals.
This commit is contained in:
@@ -224,9 +224,9 @@ struct vfork_save
|
||||
{
|
||||
int pid;
|
||||
jmp_buf j;
|
||||
DWORD frame[100];
|
||||
char **vfork_ebp;
|
||||
char *caller_ebp;
|
||||
char *retaddr;
|
||||
char **vfork_esp;
|
||||
int is_active () { return pid < 0; }
|
||||
};
|
||||
|
||||
@@ -460,9 +460,6 @@ extern void (*__DTOR_LIST__) (void);
|
||||
/* Initial and increment values for cygwin's fd table */
|
||||
#define NOFILE_INCR 32
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <sys/reent.h>
|
||||
|
||||
#define STD_RBITS (S_IRUSR | S_IRGRP | S_IROTH)
|
||||
@@ -472,10 +469,6 @@ extern "C" {
|
||||
#define O_NOSYMLINK 0x080000
|
||||
#define O_DIROPEN 0x100000
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*************************** Environment ******************************/
|
||||
|
||||
/* The structure below is used to control conversion to/from posix-style
|
||||
|
Reference in New Issue
Block a user