Conversation
|
What effect does this change have on existing packages that use Some packages that seem to use it (not a complete list): |
|
That's a good question, I just took a quick look at these packages.
|
|
One (very) concrete thing to check is if the tests continue to pass with the change. If they don't, we should take some care because it can be difficult to get some maintainers to accept pull requests. |
|
I checked and tests pass on these projects with the patch, other than |
|
Ask Leif. But I think this is the abandoned version. (Perhaps Leif can confirm and then remove the package.)
|
Checklist
Description of change
This PR fixes the behavior described in #3167 to match both intuitive expectations and the documentation. I did not end up going with the solution that I originally proposed in the issue because it turns out that the strategy the code currently uses is fundamentally broken. If
proccaptures a continuation and restores it later, it can causechannel-putto execute after the thread has terminated, resulting in hanging. The solution I ended up going with, which resolves both this issue and my original one, is to usedynamic-windto launch and teardown the receiver thread when execution enters and exits the dynamic extent ofproc.I have two tests. The first confirms that #3167 is fixed. The second confirms that logs are intercepted when a continuation is invoked that re-enters
proc.