From 3c92bdad80f3c5a47974bb2498852b95bb93bab5 Mon Sep 17 00:00:00 2001 From: mtm Date: Fri, 23 May 2003 23:39:31 +0000 Subject: Add two functions: _spinlock_pthread() and _spinunlock_pthread() that take the address of a struct pthread as their first argument. _spin[un]lock() just become wrappers arround these two functions. These new functions are for use in situations where curthread can't be used. One example is _thread_retire(), where we invalidate the array index curthread uses to get its pointer.. Approved by: re/blanket libthr --- lib/libthr/arch/i386/i386/_setcurthread.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/libthr/arch/i386') diff --git a/lib/libthr/arch/i386/i386/_setcurthread.c b/lib/libthr/arch/i386/i386/_setcurthread.c index 69a5e8f..0483120 100644 --- a/lib/libthr/arch/i386/i386/_setcurthread.c +++ b/lib/libthr/arch/i386/i386/_setcurthread.c @@ -75,13 +75,15 @@ ldt_init(void) void _retire_thread(void *entry) { - _SPINLOCK(&ldt_lock); + pthread_t thr = curthread; + + _spinlock_pthread(thr, &ldt_lock); if (ldt_free == NULL) *(void **)entry = NULL; else *(void **)entry = *ldt_free; ldt_free = entry; - _SPINUNLOCK(&ldt_lock); + _spinunlock_pthread(thr, &ldt_lock); } void * -- cgit v1.1