* external.cc (fillout_pinfo): If start_time is 0, wait a while before
returning the pinfo structure. * fhandler.cc (fhandler_base::open_setup): Convert from inline. * fhandler.h (fhandler_base::open_setup): Declare. * fhandler_console.cc (fhandler_console::open_setup): Always call fhandler_base::open_setup. * fhandler_tty.cc (fhandler_pty_slave::open_setup): Ditto. (fhandler_pty_master::open_setup): Ditto.
This commit is contained in:
@@ -76,6 +76,13 @@ fillout_pinfo (pid_t pid, int winpid)
|
||||
}
|
||||
else if (nextpid || p->pid == pid || (winpid && thispid == (DWORD) pid))
|
||||
{
|
||||
/* It is possible that this pinfo is not completely set up yet. Wait
|
||||
a while if so. */
|
||||
for (int i = 0; i < 2000; i++)
|
||||
if (p->start_time)
|
||||
break;
|
||||
else
|
||||
Sleep (1);
|
||||
ep.ctty = (p->ctty < 0 || iscons_dev (p->ctty)) ? p->ctty : device::minor (p->ctty);
|
||||
ep.pid = p->pid;
|
||||
ep.ppid = p->ppid;
|
||||
|
Reference in New Issue
Block a user