diff options
author | Neal H. Walfield <neal@gnu.org> | 2007-11-20 17:39:57 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-04-07 23:09:57 +0200 |
commit | 961d71afd49f55395e6dbfe203d6b968e4105ee0 (patch) | |
tree | 97f99e363a54786ad2323f6b1c5a5e004d5965e8 /sysdeps/l4/pt-docancel.c | |
parent | 43e3246eb6a26162ef931dadcd4a8a649c57289b (diff) |
2007-11-20 Neal H. Walfield <neal@gnu.org>
* Makefile.am (libpthread_a_SOURCES): Remove pt-create-np.c.
* sysdeps/l4/pt-create-np.c: Remove file.
* sysdeps/l4/pt-pool-np.c (pthread_pool_add_np): Change tid from
an _L4_thread_id_t to an l4_thread_id_t.
(pthread_pool_get_np): Return an l4_thread_id_t, not a
_L4_thread_id_t.
* sysdeps/l4/bits/pthread-np.h (pthread_create_from_l4_tid_np):
Remove declaration.
(pthread_pool_add_np): Change tid from an _L4_thread_id_t to an
l4_thread_id_t.
(pthread_pool_get_np): Return an l4_thread_id_t, not a
_L4_thread_id_t.
* sysdeps/l4/pt-docancel.c (__pthread_do_cancel): Implement for
the case that the target thread is not the executing thread.
* sysdeps/l4/pt-thread-alloc.c (__pthread_thread_alloc): Return
EAGAIN if pthread_pool_get_np does not return a thread. Update
comments.
* sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Don't set
the thread's pager. Assert that if this is the first thread, then
THREAD->THREADID is designates the running thread.
* sysdeps/l4/pt-timedblock.c (__pthread_timedblock): Add warning
about incomplete implementation.
* Makefile.am (libpthread_a_SOURCES): Remove pt-thread-init.c.
* sysdeps/l4/pt-thread-init.c: Remove dead file.
* sysdeps/l4/pt-start.c: Remove dead file.
Diffstat (limited to 'sysdeps/l4/pt-docancel.c')
-rw-r--r-- | sysdeps/l4/pt-docancel.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/sysdeps/l4/pt-docancel.c b/sysdeps/l4/pt-docancel.c index e832e26e..a3965d0d 100644 --- a/sysdeps/l4/pt-docancel.c +++ b/sysdeps/l4/pt-docancel.c @@ -1,5 +1,5 @@ /* Cancel a thread. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,23 +30,13 @@ call_exit (void) int __pthread_do_cancel (struct __pthread *p) { -#if 0 - assert (p->cancel_pending = 1); + assert (p->cancel_pending == 1); assert (p->cancel_state == PTHREAD_CANCEL_ENABLE); - if (L4_SameThreads (L4_Myself (), p->threadid)) + if (l4_is_thread_equal (l4_myself (), p->threadid)) call_exit (); else - { - L4_Word_t dummy; - L4_ThreadId_t dummy_id; - - /* Change the ip of the target thread to make it exit. */ - L4_ExchangeRegisters (p->threadid, (1 << 4), 0, call_exit, - 0, 0, L4_nilthread, - &dummy, &dummy, &dummy, &dummy, &dummy, - &dummy_id); - } -#endif + l4_start_sp_ip (p->threadid, (l4_word_t) p->mcontext.sp, + (l4_word_t) call_exit); return 0; } |