diff options
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r-- | winsup/cygwin/external.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index 4dc87bf80..0027c5c00 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -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; |