This is the mail archive of the ecos-discuss@sourceware.org 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: Waiting I/O operation


Andrew Lunn wrote:
On Thu, Jul 19, 2007 at 12:53:12PM +0700, Alexey Shusharin wrote:
Hello all,

My eCos application works with CAN I/O driver and has one thread for processing CAN messages. I call cyg_io_read() and thread start waiting incoming message. This situation is clear.

However I've decided to add other functionality to the thread therefore it should wait not only I/O operation (for ex: some event flags). Now I have these variants:

1. Create a second thread :-(
2. Make non-blocking read with a small time interval :-((
3. Add a callback functionality to CAN I/O driver and wake-up the thread in callback function then message is coming

Threads in eCos are light weight. So 1) is the preferred option.


Andrew

Hello Andrew,


Yes, second thread is the fastest solution but I prefer callback anyway. :-)

I think that saving of 2400 bytes of RAM (it's typical stack thread size
on my platform) is cost couple of my work hours (OK, one day with
testing). I've never done so exciting improvements of my code before.

One day and 2400 bytes saving. It's great.
:-)

Best regards
Alexey Shusharin


-- 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]