* 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:
Christopher Faylor
2000-08-03 03:02:41 +00:00
parent 6a2ef32105
commit 47026c0785
4 changed files with 33 additions and 22 deletions

View File

@@ -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