Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys lwp_setlock(): return pointer to the kmutex_t that we re...



details:   https://anonhg.NetBSD.org/src/rev/656829a10566
branches:  trunk
changeset: 966903:656829a10566
user:      ad <ad%NetBSD.org@localhost>
date:      Thu Nov 21 19:47:21 2019 +0000

description:
lwp_setlock(): return pointer to the kmutex_t that we replaced

diffstat:

 sys/kern/kern_lwp.c |  14 ++++++++------
 sys/sys/lwp.h       |   4 ++--
 2 files changed, 10 insertions(+), 8 deletions(-)

diffs (69 lines):

diff -r eea118514ee7 -r 656829a10566 sys/kern/kern_lwp.c
--- a/sys/kern/kern_lwp.c       Thu Nov 21 19:27:54 2019 +0000
+++ b/sys/kern/kern_lwp.c       Thu Nov 21 19:47:21 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_lwp.c,v 1.210 2019/11/21 18:22:05 ad Exp $        */
+/*     $NetBSD: kern_lwp.c,v 1.211 2019/11/21 19:47:21 ad Exp $        */
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc.
@@ -211,7 +211,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.210 2019/11/21 18:22:05 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.211 2019/11/21 19:47:21 ad Exp $");
 
 #include "opt_ddb.h"
 #include "opt_lockdebug.h"
@@ -1475,14 +1475,16 @@
 /*
  * Lend a new mutex to an LWP.  The old mutex must be held.
  */
-void
+kmutex_t *
 lwp_setlock(struct lwp *l, kmutex_t *mtx)
 {
+       kmutex_t *oldmtx = l->l_mutex;
 
-       KASSERT(mutex_owned(l->l_mutex));
+       KASSERT(mutex_owned(oldmtx));
 
        membar_exit();
        l->l_mutex = mtx;
+       return oldmtx;
 }
 
 /*
@@ -1517,11 +1519,11 @@
 }
 
 void
-lwp_unsleep(lwp_t *l, bool cleanup)
+lwp_unsleep(lwp_t *l, bool unlock)
 {
 
        KASSERT(mutex_owned(l->l_mutex));
-       (*l->l_syncobj->sobj_unsleep)(l, cleanup);
+       (*l->l_syncobj->sobj_unsleep)(l, unlock);
 }
 
 /*
diff -r eea118514ee7 -r 656829a10566 sys/sys/lwp.h
--- a/sys/sys/lwp.h     Thu Nov 21 19:27:54 2019 +0000
+++ b/sys/sys/lwp.h     Thu Nov 21 19:47:21 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: lwp.h,v 1.188 2019/11/14 16:23:53 maxv Exp $   */
+/*     $NetBSD: lwp.h,v 1.189 2019/11/21 19:47:21 ad Exp $     */
 
 /*
  * Copyright (c) 2001, 2006, 2007, 2008, 2009, 2010
@@ -326,7 +326,7 @@
 void   startlwp(void *);
 
 int    lwp_locked(lwp_t *, kmutex_t *);
-void   lwp_setlock(lwp_t *, kmutex_t *);
+kmutex_t *lwp_setlock(lwp_t *, kmutex_t *);
 void   lwp_unlock_to(lwp_t *, kmutex_t *);
 int    lwp_trylock(lwp_t *);
 void   lwp_addref(lwp_t *);



Home | Main Index | Thread Index | Old Index