Mercurial > flash_v2
diff packages/kernel/current/src/common/kapi.cxx @ 56:755351606154 ecos-sw-1999-12-01
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
| author | jlarmour |
|---|---|
| date | Wed, 01 Dec 1999 18:33:37 +0000 |
| parents | e7ba79f6d3a8 |
| children | c38311975d4f |
line wrap: on
line diff
--- a/packages/kernel/current/src/common/kapi.cxx +++ b/packages/kernel/current/src/common/kapi.cxx @@ -108,12 +108,19 @@ externC void cyg_scheduler_start(void) externC void cyg_scheduler_lock(void) { Cyg_Scheduler::lock(); + // get_sched_lock() is unsigned, see below "cyg_ucount32 lock" + CYG_ASSERT( (0xff000000 & (Cyg_Scheduler::get_sched_lock())) == 0, + "Scheduler overlocked" ); } /* Unlock the scheduler. */ externC void cyg_scheduler_unlock(void) { - Cyg_Scheduler::unlock(); + cyg_ucount32 slock = Cyg_Scheduler::get_sched_lock(); + CYG_ASSERT( 0 < slock, "Scheduler not locked" ); + // And program defensively too: + if ( 0 < slock ) + Cyg_Scheduler::unlock(); } /*---------------------------------------------------------------------------*/
