On Tue, May 10, 2011 at 11:13:29AM +0200, Svante Signell wrote: > Sorry, but your question was not referring to the pasted code at all, > just a direct question. You know better than me of course, I'm just > trying to understand things and admittedly do some guess work.
I wonder what else it could refer to. > > > (gdb) thread apply all bt > > > > > > Thread 6 (Thread 19821.6): > .. > > > #2 0x01195608 in timer_thread () at ../sysdeps/mach/hurd/setitimer.c:91 > > > Cannot access memory at address 0x2a000 > > > I just see threads calling mach_msg() ... One seems to be related to > > POSIX timers (timer_thread) and the other is a POSIX thread receiving > > a message. I'm not even sure you can see the signal thread with gdb > > (I'll check that). So, again, what makes you think there are two signal > > threads ? > See above. Again, I just see a thread related to POSIX timers. > BTW: What is triggering a new thread, a fork or? > Can you explain why thread number 6 points to an invalid memory address? I'll check how glibc deals with POSIX timers. It could simply be that timer_create() is called with SIGEV_THREAD. The invalid memory address is likely garbage at the top of the stack. I wouldn't worry about it. -- Richard Braun