block should be marked as nonexistent.
(winpids::add): Use PID_ALLPIDS when looking for all pids.
* cygwin.h (PID_ALLPIDS): New enum element.
+2002-03-15 Christopher Faylor <cgf@redhat.com>
+
+ * pinfo.cc (pinfo::init): Use PID_ALLPIDS flag to control when a
+ redirected block should be marked as nonexistent.
+ (winpids::add): Use PID_ALLPIDS when looking for all pids.
+ * cygwin.h (PID_ALLPIDS): New enum element.
+
2002-03-15 Corinna Vinschen <corina@vinschen.de>
* glob.c (stat32_to_STAT): New function.
PID_USETTY = 0x1000, // Setting this enables or disables cygwin's
// tty support. This is inherited by
// all execed or forked processes.
- PID_UNUSED2 = 0x2000, // child has execed
+ PID_ALLPIDS = 0x2000, // child has execed
PID_EXECED = 0x4000, // redirect to original pid info block
PID_NOREDIR = 0x8000, // don't redirect if execed
PID_EXITED = 0x80000000 // Free entry.
}
/* exported as recvmsg: standards? */
-extern "C" int
+extern "C" int
cygwin_recvmsg(int s, struct msghdr *msg, int flags)
{
int ret, nb;
errno = ENOMEM;
return -1;
}
- nb = ret = cygwin_recvfrom (s, buf, tot, flags,
+ nb = ret = cygwin_recvfrom (s, buf, tot, flags,
(struct sockaddr *) msg->msg_name, (int *) &msg->msg_namelen);
p = buf;
while (nb > 0) {
memcpy (p, iov[i].iov_base, iov[i].iov_len);
p += iov[i].iov_len;
}
- ret = cygwin_sendto (s, buf, tot, flags,
+ ret = cygwin_sendto (s, buf, tot, flags,
(struct sockaddr *) msg->msg_name, msg->msg_namelen);
free (buf);
return ret;
api_fatal ("retrieval of execed process info for pid %d failed due to recursion.", n);
n = realpid;
release ();
- if (flag & PID_NOREDIR)
+ if (flag & PID_ALLPIDS)
{
set_errno (ENOENT);
break;
pinfolist = (pinfo *) realloc (pinfolist, size_pinfolist (npidlist + 1));
}
- pinfolist[nelem].init (cygpid, PID_NOREDIR);
+ pinfolist[nelem].init (cygpid, PID_NOREDIR | (winpid ? PID_ALLPIDS : 0));
if (winpid)
/* nothing to do */;
else if (!pinfolist[nelem])