diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-19 13:41:25 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-24 09:37:28 +0200 |
commit | 6de1f92121f947f9c379747d66135fd8a500d0f5 (patch) | |
tree | 49a574229864c6e158f6eb1295795500beaa5d62 /cpukit/score/src/threadtimeout.c | |
parent | score: _Watchdog_Per_CPU_lazy_insert_monotonic() (diff) | |
download | rtems-6de1f92121f947f9c379747d66135fd8a500d0f5.tar.bz2 |
score: Add _Thread_Continue()
Update #3117.
Update #3182.
Diffstat (limited to 'cpukit/score/src/threadtimeout.c')
-rw-r--r-- | cpukit/score/src/threadtimeout.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/cpukit/score/src/threadtimeout.c b/cpukit/score/src/threadtimeout.c index 8bcdc3806d..8ea5a651f0 100644 --- a/cpukit/score/src/threadtimeout.c +++ b/cpukit/score/src/threadtimeout.c @@ -22,14 +22,11 @@ #include <rtems/score/threadimpl.h> #include <rtems/score/status.h> -void _Thread_Timeout( Watchdog_Control *watchdog ) +void _Thread_Continue( Thread_Control *the_thread, Status_Control status ) { - Thread_Control *the_thread; - Thread_queue_Context queue_context; - Thread_Wait_flags wait_flags; - bool unblock; - - the_thread = RTEMS_CONTAINER_OF( watchdog, Thread_Control, Timer.Watchdog ); + Thread_queue_Context queue_context; + Thread_Wait_flags wait_flags; + bool unblock; _Thread_queue_Context_initialize( &queue_context ); _Thread_queue_Context_clear_priority_updates( &queue_context ); @@ -44,7 +41,7 @@ void _Thread_Timeout( Watchdog_Control *watchdog ) _Thread_Wait_cancel( the_thread, &queue_context ); - the_thread->Wait.return_code = STATUS_TIMEOUT; + the_thread->Wait.return_code = status; wait_class = wait_flags & THREAD_WAIT_CLASS_MASK; ready_again = wait_class | THREAD_WAIT_STATE_READY_AGAIN; @@ -82,3 +79,15 @@ void _Thread_Timeout( Watchdog_Control *watchdog ) #endif } } + +void _Thread_Timeout( Watchdog_Control *the_watchdog ) +{ + Thread_Control *the_thread; + + the_thread = RTEMS_CONTAINER_OF( + the_watchdog, + Thread_Control, + Timer.Watchdog + ); + _Thread_Continue( the_thread, STATUS_TIMEOUT ); +} |