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>2005-09-30 04:18:30 +0400
committerChristopher Faylor <me@cgf.cx>2005-09-30 04:18:30 +0400
commit40c7d132ef0a3084552fd8444c4d31f162f99611 (patch)
treeced9b3f0975a690d04b3223cec0ce8aeaccc7d4a /winsup/cygwin/fork.cc
parentf859ca87a7daff7e93587f239be0199e047f5608 (diff)
* fork.cc (frok::parent): Simplify error messages. Don't issue an error when
child.remember fails. (fork): When appropriate, build up an error message from grouped.error.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc29
1 files changed, 18 insertions, 11 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 64fd53893..3381d128d 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -334,7 +334,7 @@ frok::parent (void *stack_here)
if (forker_finished == NULL)
{
this_errno = geterrno_from_win_error ();
- error = "child %d - unable to allocate forker_finished event, %E";
+ error = "unable to allocate forker_finished event";
return -1;
}
@@ -369,7 +369,7 @@ frok::parent (void *stack_here)
if (!rc)
{
this_errno = geterrno_from_win_error ();
- error = "child %d - CreateProcessA failed, %E";
+ error = "CreateProcessA failed";
goto cleanup;
}
@@ -389,7 +389,7 @@ frok::parent (void *stack_here)
{
this_errno = get_errno () == ENOMEM ? ENOMEM : EAGAIN;
#ifdef DEBUGGING
- error = "child %d - pinfo failed";
+ error = "pinfo failed";
#else
syscall_printf ("pinfo failed");
#endif
@@ -425,8 +425,8 @@ frok::parent (void *stack_here)
{
TerminateProcess (pi.hProcess, 1);
this_errno = EAGAIN;
-#ifdef DEBUGGING
- error = "child %d - child.remember failed";
+#ifdef DEBUGGING0
+ error = "child.remember failed";
#endif
goto cleanup;
}
@@ -439,7 +439,7 @@ frok::parent (void *stack_here)
if (!ch.sync (child->pid, pi.hProcess, FORK_WAIT_TIMEOUT))
{
this_errno = EAGAIN;
- error = "child %d - died waiting for longjmp before initialization";
+ error = "died waiting for longjmp before initialization";
goto cleanup;
}
@@ -485,7 +485,7 @@ frok::parent (void *stack_here)
{
this_errno = get_errno ();
#ifdef DEBUGGING
- error = "child %d - fork_copy for linked dll data/bss failed";
+ error = "fork_copy for linked dll data/bss failed";
#endif
goto cleanup;
}
@@ -497,7 +497,7 @@ frok::parent (void *stack_here)
else if (!ch.sync (child->pid, pi.hProcess, FORK_WAIT_TIMEOUT))
{
this_errno = EAGAIN;
- error = "child %d died waiting for dll loading";
+ error = "died waiting for dll loading";
goto cleanup;
}
@@ -517,7 +517,7 @@ frok::parent (void *stack_here)
{
this_errno = get_errno ();
#ifdef DEBUGGING
- error = "child %d - copying data/bss for a loaded dll";
+ error = "copying data/bss for a loaded dll";
#endif
goto cleanup;
}
@@ -589,9 +589,16 @@ fork ()
else
{
if (!grouped.error)
- syscall_printf ("fork failed - child pid %d", grouped.child_pid);
+ syscall_printf ("fork failed - child pid %d, errno %d", grouped.child_pid, grouped.this_errno);
else
- system_printf (grouped.error, grouped.child_pid);
+ {
+ char buf[strlen (grouped.error) + sizeof ("child %d - , errno 4294967295 ")];
+ strcpy (buf, "child %d - ");
+ strcat (buf, grouped.error);
+ strcat (buf, ", errno %d");
+ system_printf (buf, grouped.child_pid, grouped.this_errno);
+ }
+
set_errno (grouped.this_errno);
}
syscall_printf ("%d = fork()", res);