diff options
Diffstat (limited to 'cpukit/rtems/src/taskresume.c')
-rw-r--r-- | cpukit/rtems/src/taskresume.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/cpukit/rtems/src/taskresume.c b/cpukit/rtems/src/taskresume.c index 345797c2a1..7d220c071d 100644 --- a/cpukit/rtems/src/taskresume.c +++ b/cpukit/rtems/src/taskresume.c @@ -57,6 +57,15 @@ rtems_status_code rtems_task_resume( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + if ( _States_Is_suspended( the_thread->current_state ) ) { + _Thread_Resume( the_thread, TRUE ); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + _Thread_Enable_dispatch(); + return RTEMS_INCORRECT_STATE; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return _RTEMS_tasks_MP_Send_request_packet( @@ -69,17 +78,8 @@ rtems_status_code rtems_task_resume( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - if ( _States_Is_suspended( the_thread->current_state ) ) { - _Thread_Resume( the_thread, TRUE ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - _Thread_Enable_dispatch(); - return RTEMS_INCORRECT_STATE; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } |