diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-12-10 14:10:48 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-12-11 08:20:48 +0100 |
commit | df55d07f2e5c4b1c3d73c4f26a2cbb82f2af261c (patch) | |
tree | 7e1ef06ab4df2f97afdc676b7912886aba91d703 /cpukit/rtems/src | |
parent | Use linker set for system initialization (diff) | |
download | rtems-df55d07f2e5c4b1c3d73c4f26a2cbb82f2af261c.tar.bz2 |
score: Untangle thread actions
Remove the thread action handler parameter from
_Thread_Action_initialize() and instead set it later in
_Thread_Add_post_switch_action(). This avoids a dependency on the
thread action handler via the thread initialization.
Diffstat (limited to '')
-rw-r--r-- | cpukit/rtems/src/signalsend.c | 3 | ||||
-rw-r--r-- | cpukit/rtems/src/taskmode.c | 4 | ||||
-rw-r--r-- | cpukit/rtems/src/tasks.c | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/cpukit/rtems/src/signalsend.c b/cpukit/rtems/src/signalsend.c index c86c399637..4153e407f4 100644 --- a/cpukit/rtems/src/signalsend.c +++ b/cpukit/rtems/src/signalsend.c @@ -49,7 +49,8 @@ rtems_status_code rtems_signal_send( _ASR_Post_signals( asr, signal_set, &asr->signals_posted ); _Thread_Add_post_switch_action( the_thread, - &api->Signal_action + &api->Signal_action, + _Signal_Action_handler ); } else { _ASR_Post_signals( asr, signal_set, &asr->signals_pending ); diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c index de30806186..fadca68225 100644 --- a/cpukit/rtems/src/taskmode.c +++ b/cpukit/rtems/src/taskmode.c @@ -21,6 +21,7 @@ #include <rtems/rtems/tasks.h> #include <rtems/rtems/asrimpl.h> #include <rtems/rtems/modesimpl.h> +#include <rtems/rtems/signalimpl.h> #include <rtems/score/schedulerimpl.h> #include <rtems/score/threadimpl.h> #include <rtems/config.h> @@ -103,7 +104,8 @@ rtems_status_code rtems_task_mode( needs_asr_dispatching = true; _Thread_Add_post_switch_action( executing, - &api->Signal_action + &api->Signal_action, + _Signal_Action_handler ); } } diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c index e5a80ee5b8..c4eca04103 100644 --- a/cpukit/rtems/src/tasks.c +++ b/cpukit/rtems/src/tasks.c @@ -55,7 +55,7 @@ static bool _RTEMS_tasks_Create_extension( api = created->API_Extensions[ THREAD_API_RTEMS ]; _ASR_Create( &api->Signal ); - _Thread_Action_initialize( &api->Signal_action, _Signal_Action_handler ); + _Thread_Action_initialize( &api->Signal_action ); #if !defined(RTEMS_SMP) created->task_variables = NULL; #endif |