PATCH 6/7 is the fix. It took me a while to realize how to fix it. 1-5 improve parallelism and reduce resource usage while limiting the workaround to a single callsite in #6. And #7 is just a cleanliness fix.
Eric Wong (7): ipc: support awaitpid in WQ workers cindex: do prune work while waiting for `git log -p' cindex: share PktOp socket across prune workers cindex: share PktOp across indexing workers cindex: enter event loop once per run cindex: workaround for FreeBSD missing SIGCHLD cindex: reset DS internals on cidx_run completion MANIFEST | 1 + lib/PublicInbox/CidxLogP.pm | 29 ++++ lib/PublicInbox/CodeSearchIdx.pm | 290 ++++++++++++++++--------------- lib/PublicInbox/IPC.pm | 11 +- 4 files changed, 184 insertions(+), 147 deletions(-) create mode 100644 lib/PublicInbox/CidxLogP.pm
