summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/eventseize.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-21 23:09:07 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-21 23:09:07 +0000
commit4b45c1393ce4ee3e1c2762ef3145d2bd6b5b38da (patch)
tree4166e0d1b92b95716888ca2f8205afd34503f1e0 /cpukit/rtems/src/eventseize.c
parent2009-07-21 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-4b45c1393ce4ee3e1c2762ef3145d2bd6b5b38da.tar.bz2
2009-07-21 Joel Sherrill <joel.sherrill@OARcorp.com>
* rtems/src/eventseize.c, rtems/src/eventsurrender.c, rtems/src/eventtimeout.c: Clean up and minor rework as a side-effect of coverage analysis.
Diffstat (limited to 'cpukit/rtems/src/eventseize.c')
-rw-r--r--cpukit/rtems/src/eventseize.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/cpukit/rtems/src/eventseize.c b/cpukit/rtems/src/eventseize.c
index 9abb54fa6a..0b6bf2d623 100644
--- a/cpukit/rtems/src/eventseize.c
+++ b/cpukit/rtems/src/eventseize.c
@@ -86,12 +86,20 @@ void _Event_Seize(
return;
}
- _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
-
+ /*
+ * Note what we are waiting for BEFORE we enter the critical section.
+ * The interrupt critical section management code needs this to be
+ * set properly when we are marked as in the event critical section.
+ *
+ * NOTE: Since interrupts are disabled, this isn't that much of an
+ * issue but better safe than sorry.
+ */
executing->Wait.option = (uint32_t) option_set;
executing->Wait.count = (uint32_t) event_in;
executing->Wait.return_argument = event_out;
+ _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
+
_ISR_Enable( level );
if ( ticks ) {