summaryrefslogtreecommitdiff
path: root/cpukit/rtems/src/eventreceive.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/src/eventreceive.c')
-rw-r--r--cpukit/rtems/src/eventreceive.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/cpukit/rtems/src/eventreceive.c b/cpukit/rtems/src/eventreceive.c
index 07e1c574df..14f93db4e6 100644
--- a/cpukit/rtems/src/eventreceive.c
+++ b/cpukit/rtems/src/eventreceive.c
@@ -34,9 +34,13 @@ rtems_status_code rtems_event_receive(
if ( event_out != NULL ) {
ISR_lock_Context lock_context;
- Thread_Control *executing = _Thread_Acquire_executing( &lock_context );
- RTEMS_API_Control *api = executing->API_Extensions[ THREAD_API_RTEMS ];
- Event_Control *event = &api->Event;
+ Thread_Control *executing;
+ RTEMS_API_Control *api;
+ Event_Control *event;
+
+ executing = _Thread_Lock_acquire_default_for_executing( &lock_context );
+ api = executing->API_Extensions[ THREAD_API_RTEMS ];
+ event = &api->Event;
if ( !_Event_sets_Is_empty( event_in ) ) {
_Event_Seize(
@@ -54,7 +58,7 @@ rtems_status_code rtems_event_receive(
sc = executing->Wait.return_code;
} else {
*event_out = event->pending_events;
- _Objects_Release_and_ISR_enable( &executing->Object, &lock_context );
+ _Thread_Lock_release_default( executing, &lock_context );
sc = RTEMS_SUCCESSFUL;
}
} else {