summaryrefslogtreecommitdiffstats
path: root/cpukit/itron/src/sus_tsk.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/itron/src/sus_tsk.c')
-rw-r--r--cpukit/itron/src/sus_tsk.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/cpukit/itron/src/sus_tsk.c b/cpukit/itron/src/sus_tsk.c
index 12ef07ff7b..f2ee948e0b 100644
--- a/cpukit/itron/src/sus_tsk.c
+++ b/cpukit/itron/src/sus_tsk.c
@@ -33,24 +33,21 @@ ER sus_tsk(
Objects_Locations location;
the_thread = _ITRON_Task_Get( tskid, &location );
- if (!the_thread)
- _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
-
- if ( the_thread == _Thread_Executing )
- _ITRON_return_errorno( E_OBJ );
-
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
case OBJECTS_LOCAL:
+
+ if ( _Thread_Is_executing( the_thread ) )
+ _ITRON_return_errorno( E_OBJ );
+
_Thread_Suspend( the_thread );
- _Thread_Enable_dispatch();
- return E_OK;
+ _ITRON_return_errorno( E_OK );
}
- return E_OBJ; /* XXX - Should never get here */
+ _ITRON_return_errorno( E_OBJ );
}