From e429e9742a2ca72820f8f3a8958ed138aa562bd9 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 11 Nov 2021 10:34:31 +0100 Subject: score: Simplify thread wait state handling Remove the THREAD_WAIT_STATE_READY_AGAIN and simply use the initial value to indicate that a thread does not wait on something. Rename THREAD_WAIT_FLAGS_INITIAL to THREAD_WAIT_STATE_READY. This change is necessary so that _Thread_Continue() can be called for threads which never waited on something (for example dormant threads). Update #4546. --- testsuites/sptests/spintrcritical08/init.c | 13 +------------ testsuites/sptests/spintrcritical09/init.c | 2 +- testsuites/sptests/spintrcritical10/init.c | 9 +++------ testsuites/sptests/spintrcritical22/init.c | 2 +- 4 files changed, 6 insertions(+), 20 deletions(-) (limited to 'testsuites/sptests') diff --git a/testsuites/sptests/spintrcritical08/init.c b/testsuites/sptests/spintrcritical08/init.c index 7b55a2e328..39855dfa29 100644 --- a/testsuites/sptests/spintrcritical08/init.c +++ b/testsuites/sptests/spintrcritical08/init.c @@ -78,7 +78,7 @@ static T_interrupt_test_state interrupt( void *arg ) T_quiet_eq_int( previous_period_state, RATE_MONOTONIC_ACTIVE ); T_quiet_eq_int( getState( ctx ), RATE_MONOTONIC_ACTIVE ); state = T_INTERRUPT_TEST_DONE; - } else if ( flags == THREAD_WAIT_FLAGS_INITIAL ) { + } else if ( flags == THREAD_WAIT_STATE_READY ) { T_quiet_true( previous_period_state == RATE_MONOTONIC_ACTIVE || previous_period_state == RATE_MONOTONIC_EXPIRED @@ -100,8 +100,6 @@ static void prepare( void *arg ) { test_context *ctx; rtems_status_code sc; - ISR_Level level; - bool success; ctx = arg; @@ -119,15 +117,6 @@ static void prepare( void *arg ) */ sc = rtems_rate_monotonic_period( ctx->period, 1 ); } while ( sc != RTEMS_SUCCESSFUL ); - - _ISR_Local_disable( level ); - success = _Thread_Wait_flags_try_change_release( - ctx->thread, - RATE_MONOTONIC_READY_AGAIN, - THREAD_WAIT_FLAGS_INITIAL - ); - _ISR_Local_enable( level ); - T_quiet_true( success ); } static void action( void *arg ) diff --git a/testsuites/sptests/spintrcritical09/init.c b/testsuites/sptests/spintrcritical09/init.c index 3d82febd6f..2dec20ef7e 100644 --- a/testsuites/sptests/spintrcritical09/init.c +++ b/testsuites/sptests/spintrcritical09/init.c @@ -32,7 +32,7 @@ static bool is_interrupt_timeout( test_context *ctx ) { Thread_Wait_flags flags = _Thread_Wait_flags_get( ctx->thread ); - return flags == ( THREAD_WAIT_CLASS_OBJECT | THREAD_WAIT_STATE_READY_AGAIN ); + return flags == THREAD_WAIT_STATE_READY; } static T_interrupt_test_state interrupt( void *arg ) diff --git a/testsuites/sptests/spintrcritical10/init.c b/testsuites/sptests/spintrcritical10/init.c index 8210853588..36f50628fb 100644 --- a/testsuites/sptests/spintrcritical10/init.c +++ b/testsuites/sptests/spintrcritical10/init.c @@ -92,8 +92,7 @@ static T_interrupt_test_state any_satisfy_before_timeout_interrupt(void *arg) if (state == T_INTERRUPT_TEST_DONE) { rtems_test_assert( - _Thread_Wait_flags_get(thread) - == (THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_READY_AGAIN) + _Thread_Wait_flags_get(thread) == THREAD_WAIT_STATE_READY ); } @@ -184,8 +183,7 @@ static T_interrupt_test_state all_satisfy_before_timeout_interrupt(void *arg) if (state == T_INTERRUPT_TEST_DONE) { rtems_test_assert( - _Thread_Wait_flags_get(thread) - == (THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_READY_AGAIN) + _Thread_Wait_flags_get(thread) == THREAD_WAIT_STATE_READY ); } @@ -261,8 +259,7 @@ static T_interrupt_test_state timeout_before_satisfied_interrupt(void *arg) if (state == T_INTERRUPT_TEST_DONE) { rtems_test_assert( - _Thread_Wait_flags_get(thread) - == (THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_READY_AGAIN) + _Thread_Wait_flags_get(thread) == THREAD_WAIT_STATE_READY ); } diff --git a/testsuites/sptests/spintrcritical22/init.c b/testsuites/sptests/spintrcritical22/init.c index 192a5a98b3..f950307fdc 100644 --- a/testsuites/sptests/spintrcritical22/init.c +++ b/testsuites/sptests/spintrcritical22/init.c @@ -56,7 +56,7 @@ static T_interrupt_test_state release_semaphore(void *arg) rtems_test_assert( _Thread_Wait_flags_get(ctx->main_task_control) - == (THREAD_WAIT_CLASS_OBJECT | THREAD_WAIT_STATE_READY_AGAIN) + == THREAD_WAIT_STATE_READY ); sem = &ctx->semaphore_control->Core_control.Semaphore; rtems_test_assert(sem->count == 0); -- cgit v1.2.3