static void __wait_for_threads(unsigned int threads)
{
+#define MAX_RETRYING_COUNT 600
unsigned int thread_count;
+ unsigned int retrying_count = 0;
if (threads <= 1)
return;
_W("Thread count = %u", threads);
do {
thread_count = __get_thread_count();
- _D("Current thread count = %u", thread_count);
- if (thread_count >= threads)
- break;
+ if (thread_count >= threads) {
+ _E("Threads(%u) are ready", thread_count);
+ return;
+ }
+ _D("Current thread count = %u", thread_count);
usleep(50 * 1000);
- } while (threads != thread_count);
- _E("Threads(%u) are ready", thread_count);
+ retrying_count++;
+ } while (retrying_count < MAX_RETRYING_COUNT);
+ _E("Maximum retrying count exceeded");
}
static int __before_loop(int argc, char **argv)