This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
an invalid THREAD_GETMEM call
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: an invalid THREAD_GETMEM call
- From: Bruno Haible <haible at ilog dot fr>
- Date: Tue, 2 May 2000 15:38:22 +0200 (MET DST)
THREAD_GETMEM on i386 works only on arguments of size 1 or 4, but this
one in join.c is applied to a struct of size 8. Here is a fix.
2000-04-29 Bruno Haible <clisp.cons.org>
* join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
for eventmask larger than 1 word.
*** linuxthreads/join.c.bak Mon Apr 24 13:47:37 2000
--- linuxthreads/join.c Sat Apr 29 23:14:06 2000
***************
*** 45,52 ****
uint32_t mask = __td_eventmask (TD_DEATH);
if ((mask & (__pthread_threads_events.event_bits[idx]
! | THREAD_GETMEM(self,
! p_eventbuf.eventmask).event_bits[idx]))
!= 0)
{
/* Yep, we have to signal the death. */
--- 45,52 ----
uint32_t mask = __td_eventmask (TD_DEATH);
if ((mask & (__pthread_threads_events.event_bits[idx]
! | THREAD_GETMEM_NC(self,
! p_eventbuf.eventmask.event_bits[idx])))
!= 0)
{
/* Yep, we have to signal the death. */