summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/syscall/poll.c
diff options
context:
space:
mode:
authorqiao <none@none>2007-02-13 14:18:11 -0800
committerqiao <none@none>2007-02-13 14:18:11 -0800
commita913396d8daab34d2fa497f49ae18d9f3d3a059f (patch)
tree6893eeca3cc8f450567f222c9b1db33dc6e6d61a /usr/src/uts/common/syscall/poll.c
parent3125ebfc35130d243e775dc38a6a59be4df0b137 (diff)
downloadillumos-gate-a913396d8daab34d2fa497f49ae18d9f3d3a059f.tar.gz
6265036 cv_waituntil_sig() often returns early
Diffstat (limited to 'usr/src/uts/common/syscall/poll.c')
-rw-r--r--usr/src/uts/common/syscall/poll.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/usr/src/uts/common/syscall/poll.c b/usr/src/uts/common/syscall/poll.c
index 6d3e0eb7ad..7e21cc06cf 100644
--- a/usr/src/uts/common/syscall/poll.c
+++ b/usr/src/uts/common/syscall/poll.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -290,7 +290,6 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp)
int rval;
int i;
timespec_t *rqtp = NULL;
- int timecheck = 0;
int imm_timeout = 0;
pollfd_t *pollfdp;
pollstate_t *ps;
@@ -307,7 +306,6 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp)
imm_timeout = 1;
else {
timespec_t now;
- timecheck = timechanged;
gethrestime(&now);
rqtp = tsp;
timespecadd(rqtp, &now);
@@ -348,7 +346,7 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp)
if (!imm_timeout) {
mutex_enter(&t->t_delay_lock);
while ((rval = cv_waituntil_sig(&t->t_delay_cv,
- &t->t_delay_lock, rqtp, timecheck)) > 0)
+ &t->t_delay_lock, rqtp)) > 0)
continue;
mutex_exit(&t->t_delay_lock);
if (rval == 0)
@@ -546,7 +544,7 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp)
rval = -1;
else
rval = cv_waituntil_sig(&pcp->pc_cv, &pcp->pc_lock,
- rqtp, timecheck);
+ rqtp);
mutex_exit(&pcp->pc_lock);
/*
* If we have received a signal or timed out