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: How to reset the timeout on a thread waiting for a flag


Fabrice Gautier wrote:
Hi,

Here is what i want to do:

I have a thread starting an operation and waiting for it to finish. The
operation result in a series of interrupts. The thread waits on a flag, and
the ISR will eventually set the flag when the operation is done, to wake up
the thread.
DSR I hope :-).

I also want a timeout. But not a total timeout value for the total operation
but a timeout based on the interrupt activity. ie if there is no more
interrupt for 1/2sec then i want to timeout.

So is ther any function to reset the thread timer.
Not exported in C (nor should it be really). You could look in the C++ headers, but there be dragons.

But I would imagine an alternative way to do this is to use two flag bits with cyg_flag_timed_wait() - one bit set on each interrupt, and the other when the operation completes. It's used with CYG_FLAG_WAITMODE_OR.

Then when the thread wakes up, it checks why it woke up, and if necessary waits again for the operation to complete.

Jifl
--
eCosCentric http://www.eCosCentric.com/ <info@eCosCentric.com>
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine


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


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