* exceptions.cc (_threadinfo::remove): Avoid a linked list walk.

This commit is contained in:
Christopher Faylor 2003-12-07 03:27:51 +00:00
parent 73262d7a44
commit ae2543ed76
2 changed files with 11 additions and 9 deletions

View File

@ -1,3 +1,7 @@
2003-12-06 Christopher Faylor <cgf@redhat.com>
* exceptions.cc (_threadinfo::remove): Avoid a linked list walk.
2003-12-06 Christopher Faylor <cgf@redhat.com>
* cygtls.h (_threadinfo::find_tls): New function.

View File

@ -188,17 +188,15 @@ _threadinfo::init_thread (void *)
void
_threadinfo::remove ()
{
_threadinfo *t;
EnterCriticalSection (&protect_linked_list);
for (t = _last_thread; t && t != this; t = t->prev)
continue;
if (t)
if (prev)
{
t->prev->next = t->next;
if (t->next)
t->next->prev = t->prev;
if (t == _last_thread)
_last_thread = t->prev;
prev->next = next;
if (next)
next->prev = prev;
if (this == _last_thread)
_last_thread = prev;
prev = next = NULL;
}
LeaveCriticalSection (&protect_linked_list);
}