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: Multiple Inheritance used in eCos class Cyg_Thread


DSRs are not preemptable, and currently all pending DSRs must run to
completion before any thread gets to execute. So as far as worst case
thread response time is concerned, prioritizing DSRs amongst
themselves will have no effect. So the only alternative approach would
be to prioritize DSRs in the same space as threads so that only DSRs
of equal or higher priority than the current thread would be allowed
to execute.

However, this approach still doesn't allow DSRs to be preempted, and
would introduce a whole range of other issues regarding priority
inversion and DSR starvation. Threads are preemptable and
prioritizable, and any code that needs those sorts of properties
should go into threads. We should not try to add those properties to
DSRs.

that's true, I have to admit I have been completely oblivious of this point during my thoughts ...

On a philosophical note, I am beginning to wonder whether it was a
mistake to expose a functional interface to the DSR mechanism, since
it tempts people to write code in them. In hindsight the interface
should have been a simple signal a condition variable/semaphore
operation. I think things would have been much simpler.

but I would not throw the DSR-Interface away, because there may be some events that could be handled with just a few lines of code executed in a dsr.

Ciao, Fabian

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