* fork-child.c (fork_inferior): Fork instead of vfork if
PRE_TRACE_FUN is non-null.
This commit is contained in:
parent
1d5cce3bc9
commit
3919e12ce5
2 changed files with 17 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-11-29 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* fork-child.c (fork_inferior): Fork instead of vfork if
|
||||||
|
PRE_TRACE_FUN is non-null.
|
||||||
|
|
||||||
2004-11-24 Fred Fish <fnf@specifixinc.com>
|
2004-11-24 Fred Fish <fnf@specifixinc.com>
|
||||||
|
|
||||||
* rs6000-tdep.c (skip_prologue): Use line table info to skip over
|
* rs6000-tdep.c (skip_prologue): Use line table info to skip over
|
||||||
|
|
|
@ -274,10 +274,18 @@ fork_inferior (char *exec_file_arg, char *allargs, char **env,
|
||||||
if (pre_trace_fun != NULL)
|
if (pre_trace_fun != NULL)
|
||||||
(*pre_trace_fun) ();
|
(*pre_trace_fun) ();
|
||||||
|
|
||||||
/* Create the child process. Note that the apparent call to vfork()
|
/* Create the child process. Since the child process is going to
|
||||||
below *might* actually be a call to fork() due to the fact that
|
exec(3) shortlty afterwards, try to reduce the overhead by
|
||||||
autoconf will ``#define vfork fork'' on certain platforms. */
|
calling vfork(2). However, if PRE_TRACE_FUN is non-null, it's
|
||||||
if (debug_fork)
|
likely that this optimization won't work since there's too much
|
||||||
|
work to do between the vfork(2) and the exec(3). This is known
|
||||||
|
to be the case on ttrace(2)-based HP-UX, where some handshaking
|
||||||
|
between parent and child needs to happen between fork(2) and
|
||||||
|
exec(2). However, since the parent is suspended in the vforked
|
||||||
|
state, this doesn't work. Also note that the vfork(2) call might
|
||||||
|
actually be a call to fork(2) due to the fact that autoconf will
|
||||||
|
``#define vfork fork'' on certain platforms. */
|
||||||
|
if (pre_trace_fun || debug_fork)
|
||||||
pid = fork ();
|
pid = fork ();
|
||||||
else
|
else
|
||||||
pid = vfork ();
|
pid = vfork ();
|
||||||
|
|
Loading…
Reference in a new issue