summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2003-12-09 23:40:27 +0000
committerdeischen <deischen@FreeBSD.org>2003-12-09 23:40:27 +0000
commit1f8c5c54fd77f203bfb1e19b8afcae1b868d3008 (patch)
tree8ef65c0f46838cf3afdf3a384a36eb475709ec6b /lib
parentd8b6cc614acde625494abf1ad24f374fdcb0eb2a (diff)
downloadFreeBSD-src-1f8c5c54fd77f203bfb1e19b8afcae1b868d3008.zip
FreeBSD-src-1f8c5c54fd77f203bfb1e19b8afcae1b868d3008.tar.gz
accept() returns a file descriptor when it succeeds which is very
likely to be non-zero. When leaving the cancellation point, check the return value against -1 to see if cancellation should be checked. While I'm here, make the same change to connect() just to be consisitent. Pointed out by: davidxu
Diffstat (limited to 'lib')
-rw-r--r--lib/libkse/thread/thr_accept.c2
-rw-r--r--lib/libkse/thread/thr_connect.c2
-rw-r--r--lib/libpthread/thread/thr_accept.c2
-rw-r--r--lib/libpthread/thread/thr_connect.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/lib/libkse/thread/thr_accept.c b/lib/libkse/thread/thr_accept.c
index 3bb4031..0131bc8 100644
--- a/lib/libkse/thread/thr_accept.c
+++ b/lib/libkse/thread/thr_accept.c
@@ -43,7 +43,7 @@ __accept(int s, struct sockaddr *addr, socklen_t *addrlen)
curthread = _get_curthread();
_thr_cancel_enter(curthread);
ret = __sys_accept(s, addr, addrlen);
- _thr_cancel_leave(curthread, ret != 0);
+ _thr_cancel_leave(curthread, ret == -1);
return (ret);
}
diff --git a/lib/libkse/thread/thr_connect.c b/lib/libkse/thread/thr_connect.c
index 7e29a6d..2d5614b 100644
--- a/lib/libkse/thread/thr_connect.c
+++ b/lib/libkse/thread/thr_connect.c
@@ -43,7 +43,7 @@ __connect(int fd, const struct sockaddr *name, socklen_t namelen)
curthread = _get_curthread();
_thr_cancel_enter(curthread);
ret = __sys_connect(fd, name, namelen);
- _thr_cancel_leave(curthread, ret != 0);
+ _thr_cancel_leave(curthread, ret == -1);
return (ret);
}
diff --git a/lib/libpthread/thread/thr_accept.c b/lib/libpthread/thread/thr_accept.c
index 3bb4031..0131bc8 100644
--- a/lib/libpthread/thread/thr_accept.c
+++ b/lib/libpthread/thread/thr_accept.c
@@ -43,7 +43,7 @@ __accept(int s, struct sockaddr *addr, socklen_t *addrlen)
curthread = _get_curthread();
_thr_cancel_enter(curthread);
ret = __sys_accept(s, addr, addrlen);
- _thr_cancel_leave(curthread, ret != 0);
+ _thr_cancel_leave(curthread, ret == -1);
return (ret);
}
diff --git a/lib/libpthread/thread/thr_connect.c b/lib/libpthread/thread/thr_connect.c
index 7e29a6d..2d5614b 100644
--- a/lib/libpthread/thread/thr_connect.c
+++ b/lib/libpthread/thread/thr_connect.c
@@ -43,7 +43,7 @@ __connect(int fd, const struct sockaddr *name, socklen_t namelen)
curthread = _get_curthread();
_thr_cancel_enter(curthread);
ret = __sys_connect(fd, name, namelen);
- _thr_cancel_leave(curthread, ret != 0);
+ _thr_cancel_leave(curthread, ret == -1);
return (ret);
}
OpenPOWER on IntegriCloud