Skip to content

Commit eaec204

Browse files
committed
Fix: Do not release GIL before calling WriteUnraisableNode
1 parent 7b89b20 commit eaec204

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/ThreadModuleBuiltins.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ long start(VirtualFrame frame, Object cls, Object callable, Object args, Object
230230
// TODO: python thread stack size != java thread stack size
231231
// ignore setting the stack size for the moment
232232
TruffleThreadBuilder threadBuilder = env.newTruffleThreadBuilder(() -> {
233-
try (GilNode.UncachedAcquire gil = GilNode.uncachedAcquire()) {
234-
233+
GilNode.UncachedAcquire gil = GilNode.uncachedAcquire();
234+
try {
235235
// the increment is protected by the gil
236236
int curCount = (int) HiddenAttr.ReadNode.executeUncached(threadModule, THREAD_COUNT, 0);
237237
HiddenAttr.WriteNode.executeUncached(threadModule, THREAD_COUNT, curCount + 1);
@@ -251,6 +251,8 @@ long start(VirtualFrame frame, Object cls, Object callable, Object args, Object
251251
curCount = (int) HiddenAttr.ReadNode.executeUncached(threadModule, THREAD_COUNT, 1);
252252
HiddenAttr.WriteNode.executeUncached(threadModule, THREAD_COUNT, curCount - 1);
253253
}
254+
} finally {
255+
gil.close();
254256
}
255257
}).context(env.getContext()).threadGroup(context.getThreadGroup());
256258

0 commit comments

Comments
 (0)