From 7e4938ca42472510631c10b53502d84f81262d1a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 6 Oct 1997 21:28:40 +0000 Subject: Make Post an atomic operation. --- cpukit/rtems/inline/rtems/rtems/eventset.inl | 6 +++++- cpukit/rtems/macros/rtems/rtems/eventset.inl | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'cpukit') diff --git a/cpukit/rtems/inline/rtems/rtems/eventset.inl b/cpukit/rtems/inline/rtems/rtems/eventset.inl index a32190888b..375b15c65c 100644 --- a/cpukit/rtems/inline/rtems/rtems/eventset.inl +++ b/cpukit/rtems/inline/rtems/rtems/eventset.inl @@ -48,7 +48,11 @@ RTEMS_INLINE_ROUTINE void _Event_sets_Post( rtems_event_set *the_event_set ) { - *the_event_set |= the_new_events; + ISR_Level level; + + _ISR_Disable( level ); + *the_event_set |= the_new_events; + _ISR_Enable( level ); } /*PAGE diff --git a/cpukit/rtems/macros/rtems/rtems/eventset.inl b/cpukit/rtems/macros/rtems/rtems/eventset.inl index d5e95e4db6..a924935196 100644 --- a/cpukit/rtems/macros/rtems/rtems/eventset.inl +++ b/cpukit/rtems/macros/rtems/rtems/eventset.inl @@ -31,7 +31,13 @@ */ #define _Event_sets_Post( _the_new_events, _the_event_set ) \ - *(_the_event_set) |= (_the_new_events) + do { \ + ISR_Level level; \ + \ + _ISR_Disable( level ); \ + *(_the_event_set) |= (_the_new_events); \ + _ISR_Enable( level ); \ + } while (0); /*PAGE * -- cgit v1.2.3