summaryrefslogtreecommitdiffstats
path: root/c/src/exec/itron/src/ter_tsk.c
diff options
context:
space:
mode:
authorJennifer Averett <Jennifer.Averett@OARcorp.com>1999-11-15 21:35:14 +0000
committerJennifer Averett <Jennifer.Averett@OARcorp.com>1999-11-15 21:35:14 +0000
commit2578970553ccf4e6e5e3088230684faec6f48006 (patch)
treef1265591057a5d85ccbf2b53b539f8b4ce58579c /c/src/exec/itron/src/ter_tsk.c
parent+ Modified to use new Thread_Reset routine instead of the restart method. (diff)
downloadrtems-2578970553ccf4e6e5e3088230684faec6f48006.tar.bz2
+ Fixed files to consistantly use a case of the location after calls
to ITRON_Task_Get. + Modified to consistantly call _ITRON_return_errorno with E_OK. + Optimized the code to not disable dispatch prior to checking input values.
Diffstat (limited to '')
-rw-r--r--c/src/exec/itron/src/ter_tsk.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/c/src/exec/itron/src/ter_tsk.c b/c/src/exec/itron/src/ter_tsk.c
index e620338669..6c6f4c85c2 100644
--- a/c/src/exec/itron/src/ter_tsk.c
+++ b/c/src/exec/itron/src/ter_tsk.c
@@ -29,20 +29,25 @@ ER ter_tsk(
Objects_Locations location;
the_thread = _ITRON_Task_Get( tskid, &location );
-
- if ( location != OBJECTS_LOCAL )
- _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
-
- if ( _Thread_Is_executing( the_thread ) )
- _ITRON_return_errorno( E_OBJ );
+ switch ( location ) {
+ case OBJECTS_REMOTE:
+ case OBJECTS_ERROR:
+ return _ITRON_Task_Clarify_get_id_error( tskid );
+
+ case OBJECTS_LOCAL:
+
+ if ( _Thread_Is_executing( the_thread ) )
+ _ITRON_return_errorno( E_OBJ );
- if ( _States_Is_dormant( the_thread->current_state ) )
- _ITRON_return_errorno( E_OBJ );
+ if ( _States_Is_dormant( the_thread->current_state ) )
+ _ITRON_return_errorno( E_OBJ );
- _Thread_Restart( the_thread, NULL, 0 );
- _Thread_Set_state( the_thread, STATES_DORMANT );
+ _Thread_Restart( the_thread, NULL, 0 );
+ _Thread_Set_state( the_thread, STATES_DORMANT );
+ break;
+ }
- _ITRON_return_errorno( E_OK );
+ _ITRON_return_errorno( E_OK );
}