better error handling
diff --git a/src/libthread/fdwait.c b/src/libthread/fdwait.c
index 5dd7e86..927fc64 100644
--- a/src/libthread/fdwait.c
+++ b/src/libthread/fdwait.c
@@ -233,8 +233,9 @@
 
 	threadfdnoblock(fd);
 again:
+	errno = 0;
 	nn = read(fd, a, n);
-	if(nn < 0){
+	if(nn <= 0){
 		if(errno == EINTR)
 			goto again;
 		if(errno == EAGAIN || errno == EWOULDBLOCK){