This is a test and some code added to run() and has_forked() to simplify things for end-users. I believe it is an "harmless" change that benefits everyone, but we need to think twice before applying this.
This indirectly solves RT#65460 - the other half of the solution was to exorcise TRACE_STATISTICS. With that, the POECrasher program doesn't spinlock POE anymore, yay!
add tests and smart has_forked() behavior to simplify fork management
add POD blurb about smart has_forked management
Merged into master; thanks!