Mercurial > ecos-v3_0-branch
diff packages/kernel/current/include/sched.inl @ 124:0ec04793409a ecos-sw-2000-09-11
Merge from eCos master repository on 2000-09-11-03:00:13-BST
| author | jlarmour |
|---|---|
| date | Mon, 11 Sep 2000 02:42:46 +0000 |
| parents | 6ed91473a1cd |
| children | 42f843b391aa |
line wrap: on
line diff
--- a/packages/kernel/current/include/sched.inl +++ b/packages/kernel/current/include/sched.inl @@ -107,6 +107,19 @@ inline void Cyg_Scheduler::reschedule() unlock_inner( sched_lock ); } +inline void Cyg_Scheduler:: unlock_reschedule() +{ + // This function decrements the scheduler lock and also looks for + // a reschedule opportunity. When the lock is being decremented + // from 1 to zero this function is equivalent to unlock. When the + // lock is being decremented to a non-zero value, it is equivalent + // to unlock() followed by reschedule(). + + CYG_INSTRUMENT_SCHED(UNLOCK,sched_lock,0); + + unlock_inner( sched_lock - 1 ); +} + inline void Cyg_Scheduler::unlock_simple() { // This function decrements the lock, but does not call unlock_inner().
