From dffd0ee5d1bb64bc51ea5d11969a289a60abed63 Mon Sep 17 00:00:00 2001 From: mtm Date: Sun, 29 Jun 2003 00:12:40 +0000 Subject: The move to _retire() a thread in the GC instead of in the thread's exit function has invalidated the need for _spin[un]lock_pthread(). The _spin[un]lock() functions can now dereference curthread without the danger that the ldtentry containing the pointer to the thread has been cleared out from under them. --- lib/libthr/arch/i386/i386/_setcurthread.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'lib/libthr/arch') diff --git a/lib/libthr/arch/i386/i386/_setcurthread.c b/lib/libthr/arch/i386/i386/_setcurthread.c index 81db3e9..1960c0e 100644 --- a/lib/libthr/arch/i386/i386/_setcurthread.c +++ b/lib/libthr/arch/i386/i386/_setcurthread.c @@ -75,15 +75,13 @@ ldt_init(void) void _retire_thread(void *entry) { - pthread_t thr = curthread; - - _spinlock_pthread(thr, &ldt_lock); + _spinlock(&ldt_lock); if (ldt_free == NULL) *(void **)entry = NULL; else *(void **)entry = *ldt_free; ldt_free = entry; - _spinunlock_pthread(thr, &ldt_lock); + _spinunlock(&ldt_lock); } void * -- cgit v1.1