This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: POSIX timer_create


"Devaughn, Hans" <hans.devaughn@siemens.com> writes:

> Nick,
> 
> Thanks for your reply. 
> 
> We are operating a process control environment where we have a number of
> threads which are operating as finite state machines. These threads take in
> requests through a mailbox, process them and sometimes wait for a response
> from another application either on-board or off-board. In the meantime these
> threads must be available to handle additional real-time requests.
> Typically, when we get a request that requires a response we will start a
> fail-safe timer. Either we get the response or a timeout. It is this timer
> that I am trying to implement. 
> 
> The problem with signals is that the thread must wait for the signal and the
> thread becomes blocked.

If you set the thread signal masks correctly then the timer's signal
will be delivered just one thread and break it out of any wait it is
in.

Alternatively, why not just add some extra threads to handle the
realtime requests and leave the FSM threads alone. Or are the realtime
requests meant to feed into the FSMs in some way?

> The IEEE specifications has a member of the sigevent structure defined as
> "void(*)(unsigned sigval) sigev_notify_function Notification function". This
> is the option I had hoped to use.

This is the entry function for the thread that SIGEV_THREAD creates. 

> 
> I don't see any way to use the POSIX timers. If we were use the eCos Alarms
> what kind of problems would we be facing? The threads will be created using
> the eCos functions as the POSIX thread functions don't allow us some of the
> functionality we need.

I believe that the POSIX timers will be able to do what you want. You
just have to manipulate the signal masks to steer the timeout signals
to the correct threads.


-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts


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


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