diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-12 21:23:34 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-12 21:23:34 +0000 |
commit | d8f3f65be0c1613e150f3c3c57378dd70be28445 (patch) | |
tree | d9d33668c98ea65021c5d17bb3ab4956020c4b4d /c/src/exec/itron/src/frsm_tsk.c | |
parent | + Changed validation of the_thread to validation of location. (diff) | |
download | rtems-d8f3f65be0c1613e150f3c3c57378dd70be28445.tar.bz2 |
+ Changed validation of the_thread to validation of location.
+ Modified correct return path to call _ITRON_return_errorno( E_OK ) instead
of enabling dispatching and returning E_OK.
Diffstat (limited to '')
-rw-r--r-- | c/src/exec/itron/src/frsm_tsk.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/c/src/exec/itron/src/frsm_tsk.c b/c/src/exec/itron/src/frsm_tsk.c index 2840061dd6..84f3575aa8 100644 --- a/c/src/exec/itron/src/frsm_tsk.c +++ b/c/src/exec/itron/src/frsm_tsk.c @@ -29,27 +29,23 @@ ER frsm_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 ); - - if (_States_Is_dormant( the_thread->current_state )) - _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 ); + + if (_States_Is_dormant( the_thread->current_state )) + _ITRON_return_errorno( E_OBJ ); + _Thread_Resume( the_thread, TRUE ); - _Thread_Enable_dispatch(); - return E_OK; + _ITRON_return_errorno( E_OK ); } - return E_OBJ; /* XXX - Should never get here */ + _ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */ } |