Use rte_eal_wait_lcore to wait and get the return value for all cores.
This is used to propagate any error to the main core.

Signed-off-by: Steven Lariau <steven.lar...@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thak...@arm.com>
Reviewed-by: Phil Yang <phil.y...@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com>
---
 app/test/test_stack.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/test/test_stack.c b/app/test/test_stack.c
index c100d9faf..b9d6befd4 100644
--- a/app/test/test_stack.c
+++ b/app/test/test_stack.c
@@ -322,8 +322,10 @@ static int
 test_stack_multithreaded(uint32_t flags)
 {
        struct test_args args;
+       unsigned int lcore_id;
        struct rte_stack *s;
        rte_atomic64_t size;
+       int result = 0;
 
        if (rte_lcore_count() < 2) {
                printf("Not enough cores for test_stack_multithreaded, 
expecting at least 2\n");
@@ -346,10 +348,14 @@ test_stack_multithreaded(uint32_t flags)
 
        if (rte_eal_mp_remote_launch(stack_thread_push_pop, &args, CALL_MASTER))
                rte_panic("Failed to launch tests\n");
-       rte_eal_mp_wait_lcore();
+
+       RTE_LCORE_FOREACH(lcore_id) {
+               if (rte_eal_wait_lcore(lcore_id) < 0)
+                       result = -1;
+       }
 
        rte_stack_free(s);
-       return 0;
+       return result;
 }
 
 static int
-- 
2.17.1

Reply via email to