diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-04-20 09:45:10 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-04-21 08:25:32 +0200 |
commit | 1041de1ab071d126148f0c02e5da0db637001f1c (patch) | |
tree | 07c077b044a14d2abca32e8f9a453eec1141431e /cpukit/rtems/src/eventreceive.c | |
parent | score: Modify _Thread_Dispatch_disable_critical() (diff) | |
download | rtems-1041de1ab071d126148f0c02e5da0db637001f1c.tar.bz2 |
score: Add _Thread_Get_interrupt_disable()
Remove _Thread_Acquire() and _Thread_Acquire_for_executing(). Add
utility functions for the default thread lock. Use the default thread
lock for the RTEMS events. There is no need to disable thread
dispatching and a Giant acquire in _Event_Timeout() since this was
already done by the caller.
Update #2273.
Diffstat (limited to 'cpukit/rtems/src/eventreceive.c')
-rw-r--r-- | cpukit/rtems/src/eventreceive.c | 12 |
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 { |