On Mon, Feb 18, 2019 at 10:06:21PM +0100, Ævar Arnfjörð Bjarmason wrote: >> But in our attempt to exit(), we try to "cleanup children" and that >> is what gets stuck. > > I have not paid enough attention to this thread to say if this is dumb, > but just in case it's useful. For this class of problem where cleanup > bites you for whatever reason in Perl, you can sometimes use this: > > use POSIX (); > POSIX::_exit($code); > > This will call "exit" from "stdlib" instead of Perl's "exit". So go away > *now* and let the OS deal with the mess. Perl's will run around cleaning > up stuff, freeing memory, running destructors etc, all of which might > have side effects you don't want/care about, and might (as maybe in this > case?) cause some hang. * Perl is running in foreground, so it cannot outlive test case and spoil the subsequent ones. * From the dumps I have an impression that it waits legitimately - there are other processes to wait for. And anyway the waits happen before perl script comes to its exit. Though I am already convinced that I should have done the helper in C. Let's see when I have time to fix it.