test/mcslock: wait for lcore completion

It's possible that the mcsunlock occurs before the test_mcslock_try has
a chance to execute, which will result in the trylock being successful,
making the test case fail.  Fix this by waiting until all lcores have
completed their test before unlocking the master lock.

Fixes: 32dcb9fd2a ("test/mcslock: add MCS queued lock unit test")

Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
Aaron Conole 2019-08-07 10:58:44 -04:00 committed by Thomas Monjalon
parent 8b36297d15
commit 7fb1e84570

View File

@ -225,8 +225,8 @@ test_mcslock(void)
RTE_LCORE_FOREACH_SLAVE(i) {
rte_eal_remote_launch(test_mcslock_try, NULL, i);
}
rte_mcslock_unlock(&p_ml_try, &ml_try_me);
rte_eal_mp_wait_lcore();
rte_mcslock_unlock(&p_ml_try, &ml_try_me);
/* Test is_locked API */
if (rte_mcslock_is_locked(p_ml)) {