This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

an invalid THREAD_GETMEM call



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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]