diff options
author | deischen <deischen@FreeBSD.org> | 2003-12-09 23:40:27 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2003-12-09 23:40:27 +0000 |
commit | 1f8c5c54fd77f203bfb1e19b8afcae1b868d3008 (patch) | |
tree | 8ef65c0f46838cf3afdf3a384a36eb475709ec6b /lib/libkse/thread | |
parent | d8b6cc614acde625494abf1ad24f374fdcb0eb2a (diff) | |
download | FreeBSD-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/libkse/thread')
-rw-r--r-- | lib/libkse/thread/thr_accept.c | 2 | ||||
-rw-r--r-- | lib/libkse/thread/thr_connect.c | 2 |
2 files changed, 2 insertions, 2 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); } |