From 0a24a2e42658ec42b7f0217b5e5022877bd0ea0a Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Wed, 9 Mar 2016 16:06:50 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9059 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/abstractions/nasa_osal/src/osapi.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'os/common/abstractions/nasa_osal/src/osapi.c') diff --git a/os/common/abstractions/nasa_osal/src/osapi.c b/os/common/abstractions/nasa_osal/src/osapi.c index 685c936b6..4dc39969d 100644 --- a/os/common/abstractions/nasa_osal/src/osapi.c +++ b/os/common/abstractions/nasa_osal/src/osapi.c @@ -1911,6 +1911,28 @@ void OS_TaskExit(void) { chThdExit(MSG_OK); } +/** + * @brief Wait for task termination. + * @note This is a ChibiOS/RT extension, added for improved testability. + * + * @param[in] task_id the task id + * @return An error code. + * + * @api + */ +int32 OS_TaskWait(uint32 task_id) { + thread_t *tp = (thread_t *)task_id; + + /* Check for thread validity, getting a reference.*/ + if (chRegFindThreadByPointer(tp) == NULL) { + return OS_ERR_INVALID_ID; + } + + (void) chThdWait(tp); + + return OS_SUCCESS; +} + /** * @brief Task delay. * -- cgit v1.2.3