From 7cfb8dc89d60f151ba6bcd44fb88a6e11379f5d9 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Mon, 4 Jul 2022 11:01:24 +0800 Subject: [PATCH] add functions sf_synchronize_finished_notify/wait --- src/sf_func.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/sf_func.h b/src/sf_func.h index 8487484..6a8cfe2 100644 --- a/src/sf_func.h +++ b/src/sf_func.h @@ -117,6 +117,25 @@ static inline void sf_synchronize_counter_wait(SFSynchronizeContext *sctx) PTHREAD_MUTEX_UNLOCK(&sctx->lcp.lock); } +static inline void sf_synchronize_finished_notify( + SFSynchronizeContext *sctx) +{ + PTHREAD_MUTEX_LOCK(&sctx->lcp.lock); + sctx->finished = true; + pthread_cond_signal(&sctx->lcp.cond); + PTHREAD_MUTEX_UNLOCK(&sctx->lcp.lock); +} + +static inline void sf_synchronize_finished_wait(SFSynchronizeContext *sctx) +{ + PTHREAD_MUTEX_LOCK(&sctx->lcp.lock); + while (!sctx->finished && SF_G_CONTINUE_FLAG) { + pthread_cond_wait(&sctx->lcp.cond, &sctx->lcp.lock); + } + sctx->finished = false; //for next notify + PTHREAD_MUTEX_UNLOCK(&sctx->lcp.lock); +} + #ifdef __cplusplus } #endif