[PATCH 4/5] rtems: Simplify _Event_Surrender()

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Jan 2 17:56:37 UTC 2013


Remove superfluous test for _ISR_Is_in_progress().
---
 cpukit/rtems/src/eventsurrender.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/cpukit/rtems/src/eventsurrender.c b/cpukit/rtems/src/eventsurrender.c
index ce7edc7..6e8dbbd 100644
--- a/cpukit/rtems/src/eventsurrender.c
+++ b/cpukit/rtems/src/eventsurrender.c
@@ -57,11 +57,13 @@ void _Event_Surrender(
   }
 
   /*
-   *  If we are in an ISR and sending to the current thread, then
-   *  we have a critical section issue to deal with.
+   *  If we are sending to the executing thread, then we have a critical
+   *  section issue to deal with.  The entity sending to the executing thread
+   *  can be either the executing thread or an ISR.  In case it is the
+   *  executing thread, then the blocking operation state is not equal to
+   *  THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED.
    */
-  if ( _ISR_Is_in_progress() &&
-       _Thread_Is_executing( the_thread ) &&
+  if ( _Thread_Is_executing( the_thread ) &&
        *sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {
     if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
       event->pending_events = _Event_sets_Clear(
-- 
1.7.10.4




More information about the devel mailing list