libthr: add pshared_destroy() helper
Rewviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D38345
This commit is contained in:
parent
83a49712af
commit
3cf37d1251
@ -213,6 +213,17 @@ pshared_clean(void *key, void *val)
|
|||||||
_umtx_op(NULL, UMTX_OP_SHM, UMTX_SHM_DESTROY, key, NULL);
|
_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 *
|
void *
|
||||||
__thr_pshared_offpage(void *key, int doalloc)
|
__thr_pshared_offpage(void *key, int doalloc)
|
||||||
{
|
{
|
||||||
@ -248,13 +259,9 @@ void
|
|||||||
__thr_pshared_destroy(void *key)
|
__thr_pshared_destroy(void *key)
|
||||||
{
|
{
|
||||||
struct pthread *curthread;
|
struct pthread *curthread;
|
||||||
void *val;
|
|
||||||
|
|
||||||
curthread = _get_curthread();
|
curthread = _get_curthread();
|
||||||
pshared_wlock(curthread);
|
pshared_destroy(curthread, key);
|
||||||
val = pshared_remove(key);
|
|
||||||
pshared_unlock(curthread);
|
|
||||||
pshared_clean(key, val);
|
|
||||||
pshared_gc(curthread);
|
pshared_gc(curthread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user