diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2023-02-01 21:06:04 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2023-02-01 22:59:27 +0000 |
commit | 3cf37d1251bf71b2171e67af8f2ca43cbe3d874d (patch) | |
tree | accbcec8ddbfd93fa395d543a1d10ca1b45c9d74 | |
parent | 83a49712afa276b7f320e0dd669c8dfd33f9a5ac (diff) | |
download | src-3cf37d1251bf71b2171e67af8f2ca43cbe3d874d.tar.gz src-3cf37d1251bf71b2171e67af8f2ca43cbe3d874d.zip |
libthr: add pshared_destroy() helper
Rewviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D38345
-rw-r--r-- | lib/libthr/thread/thr_pshared.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/libthr/thread/thr_pshared.c b/lib/libthr/thread/thr_pshared.c index d0219d0488f4..37b44ab73582 100644 --- a/lib/libthr/thread/thr_pshared.c +++ b/lib/libthr/thread/thr_pshared.c @@ -213,6 +213,17 @@ pshared_clean(void *key, void *val) _umtx_op(NULL, UMTX_OP_SHM, UMTX_SHM_DESTROY, key, NULL); } +static void +pshared_destroy(struct pthread *curthread, void *key) +{ + void *val; + + pshared_wlock(curthread); + val = pshared_remove(key); + pshared_unlock(curthread); + pshared_clean(key, val); +} + void * __thr_pshared_offpage(void *key, int doalloc) { @@ -248,13 +259,9 @@ void __thr_pshared_destroy(void *key) { struct pthread *curthread; - void *val; curthread = _get_curthread(); - pshared_wlock(curthread); - val = pshared_remove(key); - pshared_unlock(curthread); - pshared_clean(key, val); + pshared_destroy(curthread, key); pshared_gc(curthread); } |