Skip to content

Commit da3bde0

Browse files
committed
Propagate ThreadDeath for Fibers for context cancellation
1 parent cb36e7a commit da3bde0

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/main/java/org/truffleruby/core/fiber/FiberManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ private void fiberMain(RubyContext context, RubyFiber fiber, RubyProc block, Nod
158158
} catch (FiberShutdownException e) {
159159
// Ends execution of the Fiber
160160
lastMessage = null;
161+
} catch (ThreadDeath e) { // Context#close(true), handled by Truffle
162+
lastMessage = null;
163+
throw e;
161164
} catch (BreakException e) {
162165
final RubyException exception = context.getCoreExceptions().breakFromProcClosure(currentNode);
163166
lastMessage = new FiberExceptionMessage(new RaiseException(context, exception));

0 commit comments

Comments
 (0)