From eb02f47b126b56091ffaeaad470a48e2ac6d57b5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 10 Nov 1999 13:48:27 +0000 Subject: Committed modifications from ITRON Task and Task Dependendent Synchronization Working Group. Included are tests. --- c/src/exec/itron/src/frsm_tsk.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'c/src/exec/itron/src/frsm_tsk.c') diff --git a/c/src/exec/itron/src/frsm_tsk.c b/c/src/exec/itron/src/frsm_tsk.c index 8fe5e9e6fc..2840061dd6 100644 --- a/c/src/exec/itron/src/frsm_tsk.c +++ b/c/src/exec/itron/src/frsm_tsk.c @@ -25,7 +25,32 @@ ER frsm_tsk( ID tskid ) { - return E_OK; + register Thread_Control *the_thread; + 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: + _Thread_Resume( the_thread, TRUE ); + _Thread_Enable_dispatch(); + return E_OK; + } + + return E_OBJ; /* XXX - Should never get here */ + } -- cgit v1.2.3