Please sign in to comment.
Fix Proc::Async.kill failing to kill sometimes
Fixes RT#131479: https://rt.perl.org/Ticket/Display.html?id=131479 Fixes roast/#158: perl6/roast#158 The observed problems are due to multiple .kills in separate threads ending up calling $*KERNEL.signal, which isn't thread safe, ending up in it returning a type object, crashing due to return type constraint Fix by first refactoring[^1] $*KERNEL.signal so only the Str:D candidate is not thread safe and then refactoring Proc::Async.kill to use multies for non-Str signals, so we don't have to use $*KERNEL.signal for those, as for Str signals, we use a lock when calling $*KERNEL.signal, avoiding race issues.  79b8ab9
- Loading branch information...
Showing with 19 additions and 3 deletions.