This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Thread state during interruption
- From: "Michele Portolan" <michele dot Portolan at imag dot fr>
- To: <ecos-discuss at sources dot redhat dot com>
- Date: Wed, 11 Jun 2003 14:24:38 +0200
- Subject: [ECOS] Thread state during interruption
I'm programming an interrupt handler,but there's a thing I cannot
understand:
if I do not change the interrupted thread state inside the ISR do I risk for
it to be scheduled before the DSR has terminated?
Or does it remains blocked until I return from the interruption? If it is
so,what is its state?
In packages\kernel\include\thread.hxx I found:
class Cyg_Thread
: public Cyg_HardwareThread, // provides hardware abstractions
public Cyg_SchedThread // provides scheduling abstractions
{
friend class Cyg_Scheduler;
friend void deliver_exception( CYG_WORD code, CYG_ADDRWORD data );
// The following definitions are used by all variants of the
// basic thread object.
public:
enum { // Thread state values
RUNNING = 0, // Thread is runnable or running
SLEEPING = 1, // Thread is waiting for something to
happen
COUNTSLEEP = 2, // Sleep in counted manner
SUSPENDED = 4, // Suspend count is non-zero
CREATING = 8, // Thread is being created
EXITED = 16, // Thread has exited
// This is the set of bits that must be cleared by a generic
// wake() or release().
SLEEPSET = (SLEEPING | COUNTSLEEP)
};
But there are not states like "blocked on interrution".
Thanks,
Michele Portolan
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss