Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-06-19 01:18:59 +0400
committerChristopher Faylor <me@cgf.cx>2001-06-19 01:18:59 +0400
commit20a2c4436224db8bf0b9dd47c58749a36a1dfc17 (patch)
tree9445a0987f1ef7a5fe0638e13b3254ac211ebe3b /winsup/cygwin/fork.cc
parent36623e6535b5e5cddd1bab84ada4b06af9b22474 (diff)
* fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.
* fork.cc (fork_copy): Print more debugging info. (fork_parent): Change order of arguments to accomdate buggy gcc. (fork): Ditto. * syscalls.cc (_unlink): Reorganize to try harder to delete file with DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE doesn't work properly.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 651d935a3..b44855497 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -104,8 +104,8 @@ fork_copy (PROCESS_INFORMATION &pi, const char *what, ...)
__seterrno ();
/* If this happens then there is a bug in our fork
implementation somewhere. */
- system_printf ("%s pass %d failed, %p..%p, done %d, %E",
- what, pass, low, high, done);
+ system_printf ("%s pass %d failed, %p..%p, done %d, windows pid %u, %E",
+ what, pass, low, high, done, pi.dwProcessId);
goto err;
}
}
@@ -340,8 +340,8 @@ slow_pid_reuse (HANDLE h)
}
static int __stdcall
-fork_parent (void *stack_here, HANDLE& hParent, dll *&first_dll,
- bool& load_dlls, child_info_fork &ch)
+fork_parent (HANDLE& hParent, dll *&first_dll,
+ bool& load_dlls, void *stack_here, child_info_fork &ch)
{
HANDLE subproc_ready, forker_finished;
DWORD rc;
@@ -646,7 +646,7 @@ fork ()
}
void *esp;
- __asm ("movl %%esp,%0": "=r" (esp));
+ __asm__ volatile ("movl %%esp,%0": "=r" (esp));
myself->set_has_pgid_children ();
@@ -657,7 +657,7 @@ fork ()
if (res)
res = fork_child (grouped.hParent, grouped.first_dll, grouped.load_dlls);
else
- res = fork_parent (esp, grouped.hParent, grouped.first_dll, grouped.load_dlls, ch);
+ res = fork_parent (grouped.hParent, grouped.first_dll, grouped.load_dlls, esp, ch);
MALLOC_CHECK;
syscall_printf ("%d = fork()", res);