Index: vm/tests/unit/thread/utils/thread_unit_test_utils.h =================================================================== --- vm/tests/unit/thread/utils/thread_unit_test_utils.h (revision 506873) +++ vm/tests/unit/thread/utils/thread_unit_test_utils.h (working copy) @@ -44,7 +44,7 @@ #define TTS_INIT_DIFFERENT_MONITORS 1 #define MAX_TESTED_THREAD_NUMBER 5 -#define MAX_TIME_TO_WAIT 1000 +#define MAX_TIME_TO_WAIT 600000 #define MAX_OWNED_MONITORS_NMB 2 #define SLEEP_TIME 100 #define CLICK_TIME_MSEC 10 Index: vm/tests/unit/thread/test_ti_instrum.c =================================================================== --- vm/tests/unit/thread/test_ti_instrum.c (revision 506873) +++ vm/tests/unit/thread/test_ti_instrum.c (working copy) @@ -132,10 +132,12 @@ critical_tts = tts; } } - // TODO: unsafe .... need to find another way of synchronization - hythread_sleep(1000); - tf_assert_same(jthread_get_blocked_count(&waiting_on_monitor_nmb), TM_ERROR_NONE); - if (MAX_TESTED_THREAD_NUMBER - i != waiting_on_monitor_nmb + 1){ + int cycles = MAX_TIME_TO_WAIT / CLICK_TIME_MSEC; + while ((MAX_TESTED_THREAD_NUMBER - i > waiting_on_monitor_nmb + 1) && (cycles-- > 0)) { + tf_assert_same(jthread_get_blocked_count(&waiting_on_monitor_nmb), TM_ERROR_NONE); + sleep_a_click(); + } + if (cycles <= 0){ tf_fail("Wrong number waiting on monitor threads"); } tested_thread_send_stop_request(critical_tts);