summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/eventsend.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/src/eventsend.c')
-rw-r--r--cpukit/rtems/src/eventsend.c43
1 files changed, 16 insertions, 27 deletions
diff --git a/cpukit/rtems/src/eventsend.c b/cpukit/rtems/src/eventsend.c
index a6476a2da0..087ebb864f 100644
--- a/cpukit/rtems/src/eventsend.c
+++ b/cpukit/rtems/src/eventsend.c
@@ -27,37 +27,26 @@ rtems_status_code rtems_event_send(
rtems_event_set event_in
)
{
- rtems_status_code sc;
- Thread_Control *thread;
- Objects_Locations location;
+ Thread_Control *the_thread;
RTEMS_API_Control *api;
ISR_lock_Context lock_context;
- thread = _Thread_Get_interrupt_disable( id, &location, &lock_context );
- switch ( location ) {
- case OBJECTS_LOCAL:
- api = thread->API_Extensions[ THREAD_API_RTEMS ];
- sc = _Event_Surrender(
- thread,
- event_in,
- &api->Event,
- THREAD_WAIT_CLASS_EVENT,
- &lock_context
- );
- break;
-#ifdef RTEMS_MULTIPROCESSING
- case OBJECTS_REMOTE:
- sc = _Event_MP_Send_request_packet(
- EVENT_MP_SEND_REQUEST,
- id,
- event_in
- );
- break;
+ the_thread = _Thread_Get_interrupt_disable( id, &lock_context );
+
+ if ( the_thread == NULL ) {
+#if defined(RTEMS_MULTIPROCESSING)
+ return _Event_MP_Send( id, event_in );
+#else
+ return RTEMS_INVALID_ID;
#endif
- default:
- sc = RTEMS_INVALID_ID;
- break;
}
- return sc;
+ api = the_thread->API_Extensions[ THREAD_API_RTEMS ];
+ return _Event_Surrender(
+ the_thread,
+ event_in,
+ &api->Event,
+ THREAD_WAIT_CLASS_EVENT,
+ &lock_context
+ );
}