diff packages/kernel/current/src/sync/flag.cxx @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents bf00f99aec69
children e0c0827131d1
line wrap: on
line diff
--- a/packages/kernel/current/src/sync/flag.cxx
+++ b/packages/kernel/current/src/sync/flag.cxx
@@ -242,12 +242,8 @@ Cyg_Flag::wait( Cyg_FlagValue pattern, W
         // keep track of myself on the queue of waiting threads
         queue.enqueue( self );
 
-        CYG_ASSERT( 1 == Cyg_Scheduler::get_sched_lock(),
-                    "Called with non-zero scheduler lock");
-        
-        // Unlock scheduler and allow other threads to run
-        Cyg_Scheduler::unlock();
-        Cyg_Scheduler::lock();
+        // Allow other threads to run
+        Cyg_Scheduler::reschedule();
 
         CYG_ASSERT( ((CYG_ADDRWORD)&saveme) == 
                     Cyg_Thread::self()->get_wait_info(),
@@ -333,12 +329,8 @@ Cyg_Flag::wait( Cyg_FlagValue pattern, W
         // keep track of myself on the queue of waiting threads
         queue.enqueue( self );
 
-        CYG_ASSERT( 1 == Cyg_Scheduler::get_sched_lock(),
-                    "Called with non-zero scheduler lock");
-        
-        // Unlock scheduler and allow other threads to run
-        Cyg_Scheduler::unlock();
-        Cyg_Scheduler::lock();
+        // Allow other threads to run
+        Cyg_Scheduler::reschedule();
 
         CYG_ASSERT( ((CYG_ADDRWORD)&saveme) == 
                     Cyg_Thread::self()->get_wait_info(),