]> Sergey Matveev's repositories - public-inbox.git/commit
ds: introduce awaitpid, switch ProcessPipe users
authorEric Wong <e@80x24.org>
Tue, 17 Jan 2023 07:19:03 +0000 (07:19 +0000)
committerEric Wong <e@80x24.org>
Wed, 18 Jan 2023 23:25:48 +0000 (23:25 +0000)
commit6e9397d12635eae55c9114ed9689413154fed8ce
tree4ffa8148f76b2fd4c71651df0f2e682f16dfe8d0
parenta1ee3e0d84fedc4a2dd4e16e7054ee6fdfbe111a
ds: introduce awaitpid, switch ProcessPipe users

awaitpid is the new API which will eventually replace dwaitpid.
It enables early registration of callback handlers.  Eventually
(once dwaitpid is gone) it'll be able to use fewer waitpid
calls.

The avoidance of waitpid(-1) in our earlier days was driven by
the belief that threads may eventually become relevant for Perl 5,
but that's extremely unlikely at this stage.  I will still
introduce optional threads via C, but they definitely won't be
spawning/reaping processes.

Argument order to callbacks is swapped (PID first) to allow
flattened multiple arguments more natrually.  The previous API
(allowing only a single argument, as influenced by
pthread_create(3)) was more tedious as it involved packing
multiple arguments into yet another array.
lib/PublicInbox/DS.pm
lib/PublicInbox/LeiToMail.pm
lib/PublicInbox/ProcessPipe.pm
lib/PublicInbox/Qspawn.pm
lib/PublicInbox/Spawn.pm
t/spawn.t