svn commit: r214622 - head/cddl/contrib/opensolaris/lib/libzpool/common

Pawel Jakub Dawidek pjd at FreeBSD.org
Mon Nov 1 10:41:05 UTC 2010


Author: pjd
Date: Mon Nov  1 10:41:05 2010
New Revision: 214622
URL: http://svn.freebsd.org/changeset/base/214622

Log:
  1. Remove invalid assertion.
  2. Properly recalculate delta in case pthread_cond_timedwait() is interrupted.
  3. Style fix.
  
  Reported by:	[1] App Deb <appdebgr at gmail.com>

Modified:
  head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c

Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c	Mon Nov  1 08:20:14 2010	(r214621)
+++ head/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c	Mon Nov  1 10:41:05 2010	(r214622)
@@ -308,9 +308,9 @@ cv_timedwait(kcondvar_t *cv, kmutex_t *m
 	struct timeval tv;
 	clock_t delta;
 
-	ASSERT(abstime > 0);
+	abstime += lbolt;
 top:
-	delta = abstime;
+	delta = abstime - lbolt;
 	if (delta <= 0)
 		return (-1);
 
@@ -321,7 +321,7 @@ top:
 	ts.tv_nsec = tv.tv_usec * 1000 + (delta % hz) * (NANOSEC / hz);
 	ASSERT(ts.tv_nsec >= 0);
 
-	if(ts.tv_nsec >= NANOSEC) {
+	if (ts.tv_nsec >= NANOSEC) {
 		ts.tv_sec++;
 		ts.tv_nsec -= NANOSEC;
 	}


More information about the svn-src-head mailing list