an invalid THREAD_GETMEM call
Bruno Haible
haible@ilog.fr
Tue May 2 06:38:00 GMT 2000
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. */
More information about the Libc-alpha
mailing list