From c91bd3283a44946fd420ce68c43580aa0d327546 Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 5 Mar 2004 02:25:41 +0000 Subject: Pipes cannot use SOCK_DGRAM. Back to SOCK_STREAM. Add debugging to fdwait. Rewrite getcallerpc on PowerMac to be correct. --- src/libthread/fdwait.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/libthread') diff --git a/src/libthread/fdwait.c b/src/libthread/fdwait.c index 170305eb..e8e3129c 100644 --- a/src/libthread/fdwait.c +++ b/src/libthread/fdwait.c @@ -167,7 +167,7 @@ threadfdwaitsetup(void) } void -threadfdwait(int fd, int rw) +_threadfdwait(int fd, int rw, ulong pc) { int i; @@ -192,10 +192,17 @@ threadfdwait(int fd, int rw) pfd[i].fd = fd; pfd[i].events = rw=='r' ? POLLIN : POLLOUT; polls[i].c = &s.c; - //threadstate("fdwait %d %d", f->fd, e); + //fprint(2, "%s [%3d] fdwait %d %c list *0x%lux\n", + argv0, threadid(), fd, rw, pc); recvul(&s.c); } +void +threadfdwait(int fd, int rw) +{ + _threadfdwait(fd, rw, getcallerpc(&fd)); +} + void threadsleep(int ms) { @@ -230,7 +237,7 @@ again: if(errno == EINTR) goto again; if(errno == EAGAIN || errno == EWOULDBLOCK){ - threadfdwait(fd, 'r'); + _threadfdwait(fd, 'r', getcallerpc(&fd)); goto again; } } @@ -249,7 +256,7 @@ again: if(errno == EINTR) goto again; if(errno == EAGAIN || errno == EWOULDBLOCK){ - threadfdwait(fd, 'r'); + _threadfdwait(fd, 'r', getcallerpc(&fd)); goto again; } } @@ -268,7 +275,7 @@ again: if(errno == EINTR) goto again; if(errno == EAGAIN || errno == EWOULDBLOCK){ - threadfdwait(fd, 'w'); + _threadfdwait(fd, 'w', getcallerpc(&fd)); goto again; } } @@ -303,7 +310,7 @@ again: if(errno == EINTR) goto again; if(errno == EAGAIN || errno == EWOULDBLOCK){ - threadfdwait(fd, 'w'); + _threadfdwait(fd, 'w', getcallerpc(&fd)); goto again; } } -- cgit v1.2.3