From: Noboru Asai Date: Wed, 1 May 2024 02:24:20 +0000 (+0900) Subject: erofs-utils: optimize pthread_cond_signal calling X-Git-Tag: v1.8~74 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1fb70b1dbdbb4c21224a3df46bae0262bdbe918b;p=platform%2Fupstream%2Ferofs-utils.git erofs-utils: optimize pthread_cond_signal calling Call pthread_cond_signal once per file. Signed-off-by: Noboru Asai Reviewed-by: Gao Xiang Link: https://lore.kernel.org/r/20240501022420.1881305-1-asai@sijam.com [ Gao Xiang: add potential overflow detection. ] Signed-off-by: Gao Xiang --- diff --git a/lib/compress.c b/lib/compress.c index 9772543..e3e4c21 100644 --- a/lib/compress.c +++ b/lib/compress.c @@ -1260,8 +1260,10 @@ void z_erofs_mt_workfn(struct erofs_work *work, void *tlsp) out: cwork->errcode = ret; pthread_mutex_lock(&ictx->mutex); - ++ictx->nfini; - pthread_cond_signal(&ictx->cond); + if (++ictx->nfini >= ictx->seg_num) { + DBG_BUGON(ictx->nfini > ictx->seg_num); + pthread_cond_signal(&ictx->cond); + } pthread_mutex_unlock(&ictx->mutex); }