Module Name: src Committed By: kre Date: Fri Dec 8 09:24:31 UTC 2017
Modified Files: src/lib/libpthread: pthread.c pthread_compat.c pthread_mutex.c Log Message: Deal with more lwp_park() timestamp unconsting To generate a diff of this commit: cvs rdiff -u -r1.150 -r1.151 src/lib/libpthread/pthread.c cvs rdiff -u -r1.3 -r1.4 src/lib/libpthread/pthread_compat.c cvs rdiff -u -r1.63 -r1.64 src/lib/libpthread/pthread_mutex.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libpthread/pthread.c diff -u src/lib/libpthread/pthread.c:1.150 src/lib/libpthread/pthread.c:1.151 --- src/lib/libpthread/pthread.c:1.150 Tue Jul 11 15:21:35 2017 +++ src/lib/libpthread/pthread.c Fri Dec 8 09:24:31 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread.c,v 1.150 2017/07/11 15:21:35 joerg Exp $ */ +/* $NetBSD: pthread.c,v 1.151 2017/12/08 09:24:31 kre Exp $ */ /*- * Copyright (c) 2001, 2002, 2003, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread.c,v 1.150 2017/07/11 15:21:35 joerg Exp $"); +__RCSID("$NetBSD: pthread.c,v 1.151 2017/12/08 09:24:31 kre Exp $"); #define __EXPOSE_STACK 1 @@ -1202,8 +1202,8 @@ pthread__park(pthread_t self, pthread_mu * If we deferred unparking a thread, arrange to * have _lwp_park() restart it before blocking. */ - error = _lwp_park(CLOCK_REALTIME, TIMER_ABSTIME, abstime, - self->pt_unpark, hint, hint); + error = _lwp_park(CLOCK_REALTIME, TIMER_ABSTIME, + __UNCONST(abstime), self->pt_unpark, hint, hint); self->pt_unpark = 0; if (error != 0) { switch (rv = errno) { Index: src/lib/libpthread/pthread_compat.c diff -u src/lib/libpthread/pthread_compat.c:1.3 src/lib/libpthread/pthread_compat.c:1.4 --- src/lib/libpthread/pthread_compat.c:1.3 Fri Jan 31 20:44:01 2014 +++ src/lib/libpthread/pthread_compat.c Fri Dec 8 09:24:31 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_compat.c,v 1.3 2014/01/31 20:44:01 christos Exp $ */ +/* $NetBSD: pthread_compat.c,v 1.4 2017/12/08 09:24:31 kre Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread_compat.c,v 1.3 2014/01/31 20:44:01 christos Exp $"); +__RCSID("$NetBSD: pthread_compat.c,v 1.4 2017/12/08 09:24:31 kre Exp $"); #include <sys/param.h> #include <sys/syscall.h> @@ -89,7 +89,9 @@ _lwp_park(clockid_t a, int b, const stru const void *e, const void *f) { - return syscall(SYS____lwp_park60, a, b, c, d, e, f); + struct timespec t = *c; + + return syscall(SYS____lwp_park60, a, b, &t, d, e, f); } int Index: src/lib/libpthread/pthread_mutex.c diff -u src/lib/libpthread/pthread_mutex.c:1.63 src/lib/libpthread/pthread_mutex.c:1.64 --- src/lib/libpthread/pthread_mutex.c:1.63 Mon Oct 31 23:53:12 2016 +++ src/lib/libpthread/pthread_mutex.c Fri Dec 8 09:24:31 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_mutex.c,v 1.63 2016/10/31 23:53:12 christos Exp $ */ +/* $NetBSD: pthread_mutex.c,v 1.64 2017/12/08 09:24:31 kre Exp $ */ /*- * Copyright (c) 2001, 2003, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -47,7 +47,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread_mutex.c,v 1.63 2016/10/31 23:53:12 christos Exp $"); +__RCSID("$NetBSD: pthread_mutex.c,v 1.64 2017/12/08 09:24:31 kre Exp $"); #include <sys/types.h> #include <sys/lwpctl.h> @@ -394,8 +394,9 @@ pthread__mutex_lock_slow(pthread_mutex_t */ while (self->pt_mutexwait) { self->pt_blocking++; - error = _lwp_park(CLOCK_REALTIME, TIMER_ABSTIME, ts, - self->pt_unpark, __UNVOLATILE(&ptm->ptm_waiters), + error = _lwp_park(CLOCK_REALTIME, TIMER_ABSTIME, + __UNCONST(ts), self->pt_unpark, + __UNVOLATILE(&ptm->ptm_waiters), __UNVOLATILE(&ptm->ptm_waiters)); self->pt_unpark = 0; self->pt_blocking--;