diff options
author | Noboru Asai <asai@sijam.com> | 2024-05-01 11:24:20 +0900 |
---|---|---|
committer | Gao Xiang <hsiangkao@linux.alibaba.com> | 2024-05-01 14:45:37 +0800 |
commit | 1fb70b1dbdbb4c21224a3df46bae0262bdbe918b (patch) | |
tree | 0d14b4d399c62c2d1587d0b20d4dbd5bcd17188b | |
parent | 2bd9d039bed6d30946074302e0c315ef2e5ed536 (diff) | |
download | erofs-utils-upstream-dev.tar.gz |
erofs-utils: optimize pthread_cond_signal callingupstream-dev
Call pthread_cond_signal once per file.
Signed-off-by: Noboru Asai <asai@sijam.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20240501022420.1881305-1-asai@sijam.com
[ Gao Xiang: add potential overflow detection. ]
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
-rw-r--r-- | lib/compress.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); } |