[ECOS] POSIX timer callback context

Dan Jakubiec djakubiec@yahoo.com
Tue Oct 28 21:09:00 GMT 2003

I'm using a POSIX timer in my application that I
created with timer_create().  It is configured to
generate a SIGUSR1 signal when the timer expires, and
to call a signal handler installed by my app's thread.
 I also have several different tasks running that were
all created with pthread_create().

When the timer expires, the signal handler gets
executed, but it appears to be executing in a another
thread's context (i.e. pthread_self() returns the
handle for one of my other threads).  Furthermore, the
thread that installed the handler is waiting in a
pselect() call that never gets interrupted with EINTR.

This seems like a bug to me, but I wanted to pass this
by the group before fixing it to make sure I wasn't
missing anything.  Seems like there is a bit of a grey
area in the POSIX docs about whether signals get
delivered to the "process" or one of its "threads". 
However, it seems that in eCos it would only make
sense to deliver signals to the calling thread itself.

Does anyone have any background info on the eCos
implementation of POSIX timers, or an opinion on how
POSIX timer callbacks should be processed?

Dan Jakubiec
Systech Corp

Do you Yahoo!?
Exclusive Video Premiere - Britney Spears

Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

More information about the Ecos-discuss mailing list