summaryrefslogtreecommitdiff
path: root/examples/utest/testcases/kernel
diff options
context:
space:
mode:
authorShell <[email protected]>2023-07-25 14:07:44 +0800
committerGitHub <[email protected]>2023-07-25 14:07:44 +0800
commitacfa74f078b23d670ad04c3a2aa9cec5fbcf5afe (patch)
tree590ae17b763a050d32bd326da2dc6ce7155bcde0 /examples/utest/testcases/kernel
parent0a6aaf12ad6801d6bd5caca82edcaca9977f5ff6 (diff)
[libcpu/arm] fix race condition with ldrex,strex (#7842)
Signed-off-by: Shell <[email protected]>
Diffstat (limited to 'examples/utest/testcases/kernel')
-rw-r--r--examples/utest/testcases/kernel/atomic_tc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/examples/utest/testcases/kernel/atomic_tc.c b/examples/utest/testcases/kernel/atomic_tc.c
index a83c05f730..88a883916c 100644
--- a/examples/utest/testcases/kernel/atomic_tc.c
+++ b/examples/utest/testcases/kernel/atomic_tc.c
@@ -134,10 +134,11 @@ static void ture_entry(void *parameter)
static void test_atomic_add(void)
{
rt_thread_t thread;
- int i;
+ size_t i;
sem_t = rt_sem_create("atomic_sem", 0, RT_IPC_FLAG_PRIO);
- count = 0;
+ rt_atomic_store(&count, 0);
+
thread = rt_thread_create("t1", ture_entry, RT_NULL, THREAD_STACKSIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
rt_thread_startup(thread);
thread = rt_thread_create("t2", ture_entry, RT_NULL, THREAD_STACKSIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
@@ -149,7 +150,8 @@ static void test_atomic_add(void)
{
rt_sem_take(sem_t, RT_WAITING_FOREVER);
}
- uassert_true(count == 3000000);
+ i = rt_atomic_load(&count);
+ uassert_true(i == 3000000);
}
static rt_err_t utest_tc_init(void)