diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-14 09:11:07 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-18 07:30:31 +0100 |
commit | d78d5294cd076b48160e12c2f52a940d783b4dac (patch) | |
tree | 15bdd7b4b424b6c4ab49435e71ac6c795bb5a58d /cpukit/score/include/rtems/score/threaddispatch.h | |
parent | score: Remove obsolete defines (diff) | |
download | rtems-d78d5294cd076b48160e12c2f52a940d783b4dac.tar.bz2 |
score: Add and use _Thread_Dispatch_direct()
This function is useful for operations which synchronously block, e.g.
self restart, self deletion, yield, sleep. It helps to detect if these
operations are called in the wrong context. Since the thread dispatch
necessary indicator is not used, this is more robust in some SMP
situations.
Update #2751.
Diffstat (limited to 'cpukit/score/include/rtems/score/threaddispatch.h')
-rw-r--r-- | cpukit/score/include/rtems/score/threaddispatch.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/threaddispatch.h b/cpukit/score/include/rtems/score/threaddispatch.h index 801970ab21..f4ca096783 100644 --- a/cpukit/score/include/rtems/score/threaddispatch.h +++ b/cpukit/score/include/rtems/score/threaddispatch.h @@ -95,6 +95,20 @@ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void ) void _Thread_Dispatch( void ); /** + * @brief Directly do a thread dispatch. + * + * Must be called with a thread dispatch disable level of one, otherwise the + * INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL will occur. This function + * is useful for operations which synchronously block, e.g. self restart, self + * deletion, yield, sleep. + * + * @param[in] cpu_self The current processor. + * + * @see _Thread_Dispatch(). + */ +void _Thread_Dispatch_direct( Per_CPU_Control *cpu_self ); + +/** * @brief Performs a thread dispatch on the current processor. * * On entry the thread dispatch disable level must be equal to one and |