X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=test%2Futils.c;h=033b11dc9b5db38868b4ac5db32e58055507b4d4;hp=862e033ec0f0ac1ad83bdedfc70345ffbe939b99;hb=a2d26f530dccbaa73cd490b6a0e40da8d3916e00;hpb=3a73d524bf6ea79f8badb83ec15863a546602b7b diff --git a/test/utils.c b/test/utils.c index 862e033e..033b11dc 100644 --- a/test/utils.c +++ b/test/utils.c @@ -20,11 +20,15 @@ bool wait_sync_flag(struct sync_flag *s, int seconds) { clock_gettime(CLOCK_REALTIME, &timeout); timeout.tv_sec += seconds; + pthread_mutex_lock(&s->mutex); + while(!s->flag) if(!pthread_cond_timedwait(&s->cond, &s->mutex, &timeout) || errno != EINTR) { break; } + pthread_mutex_unlock(&s->mutex); + return s->flag; }