Date: Sun, 20 Mar 2005 13:51:30 GMT From: David Xu <davidxu@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 73587 for review Message-ID: <200503201351.j2KDpUnG013401@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=73587 Change 73587 by davidxu@davidxu_alona on 2005/03/20 13:51:28 Calculate relative timeout value. Affected files ... .. //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_sem.c#13 edit Differences ... ==== //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_sem.c#13 (text+ko) ==== @@ -205,6 +205,7 @@ int _sem_timedwait(sem_t * __restrict sem, struct timespec * __restrict abstime) { + struct timespec ts, ts2; struct pthread *curthread; int val, oldcancel, retval; @@ -233,8 +234,10 @@ errno = EINVAL; return (-1); } + clock_gettime(CLOCK_REALTIME, &ts); + TIMESPEC_SUB(&ts2, abstime, &ts); oldcancel = _thr_cancel_enter(curthread); - retval = _thr_umtx_wait((umtx_t *)&(*sem)->count, 0, abstime); + retval = _thr_umtx_wait((umtx_t *)&(*sem)->count, 0, &ts2); _thr_cancel_leave(curthread, oldcancel); } while (retval == 0); errno = retval;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503201351.j2KDpUnG013401>