score: Robust thread dispatch

On SMP configurations, it is a fatal error to call blocking operating
system with interrupts disabled, since this prevents delivery of
inter-processor interrupts. This could lead to executing threads which
are not allowed to execute resulting in undefined behaviour.

The ARM Cortex-M port has a similar problem, since the interrupt state
is not a part of the thread context.

Update #2811.
This commit is contained in:
Sebastian Huber
2016-11-23 12:52:06 +01:00
parent a6283671f3
commit 84e6f15c82
28 changed files with 190 additions and 4 deletions
+2 -1
View File
@@ -57,7 +57,8 @@ static const char *const internal_error_text[] = {
"INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL",
"INTERNAL_ERROR_THREAD_QUEUE_DEADLOCK",
"INTERNAL_ERROR_THREAD_QUEUE_ENQUEUE_STICKY_FROM_BAD_STATE",
"INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL"
"INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL",
"INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT"
};
const char *rtems_internal_error_text( rtems_fatal_code error )