15
15
import com .oracle .truffle .api .TruffleSafepoint .Interrupter ;
16
16
import org .truffleruby .core .fiber .RubyFiber .FiberStatus ;
17
17
18
- import com .oracle .truffle .api .TruffleContext ;
19
18
import com .oracle .truffle .api .TruffleSafepoint ;
20
19
import org .truffleruby .RubyContext ;
21
20
import org .truffleruby .RubyLanguage ;
@@ -75,9 +74,8 @@ private void createThreadToReceiveFirstMessage(RubyFiber fiber, Node currentNode
75
74
fiber .initializeNode = null ;
76
75
77
76
var sourceSection = block .getSharedMethodInfo ().getSourceSection ();
78
- final TruffleContext truffleContext = context .getEnv ().getContext ();
79
77
80
- truffleContext .leaveAndEnter (currentNode , Interrupter .THREAD_INTERRUPT , (unused ) -> {
78
+ context . getThreadManager () .leaveAndEnter (currentNode , Interrupter .THREAD_INTERRUPT , (unused ) -> {
81
79
Thread thread = context .getThreadManager ().createFiberJavaThread (fiber , sourceSection ,
82
80
() -> beforeEnter (fiber , initializeNode ),
83
81
() -> fiberMain (context , fiber , block , initializeNode ),
@@ -226,7 +224,7 @@ private void addToMessageQueue(RubyFiber fiber, FiberMessage message) {
226
224
@ TruffleBoundary
227
225
private FiberMessage waitMessage (RubyFiber fiber , Node currentNode ) throws InterruptedException {
228
226
assertNotEntered ("should have left context while waiting fiber message" );
229
- return fiber .messageQueue .take ();
227
+ return Objects . requireNonNull ( fiber .messageQueue .take () );
230
228
}
231
229
232
230
private void assertNotEntered (String reason ) {
@@ -317,8 +315,7 @@ private FiberMessage resumeAndWait(RubyFiber fromFiber, RubyFiber toFiber, Fiber
317
315
context .fiberManager .createThreadToReceiveFirstMessage (toFiber , currentNode );
318
316
}
319
317
320
- final TruffleContext truffleContext = context .getEnv ().getContext ();
321
- final FiberMessage message = truffleContext .leaveAndEnter (currentNode , Interrupter .THREAD_INTERRUPT ,
318
+ var message = context .getThreadManager ().leaveAndEnter (currentNode , Interrupter .THREAD_INTERRUPT ,
322
319
(unused ) -> {
323
320
resume (fromFiber , toFiber , operation , descriptor , args );
324
321
return waitMessage (fromFiber , currentNode );
@@ -329,8 +326,7 @@ private FiberMessage resumeAndWait(RubyFiber fromFiber, RubyFiber toFiber, Fiber
329
326
330
327
@ TruffleBoundary
331
328
public void safepoint (RubyFiber fromFiber , RubyFiber fiber , SafepointAction action , Node currentNode ) {
332
- final TruffleContext truffleContext = context .getEnv ().getContext ();
333
- final FiberResumeMessage returnMessage = (FiberResumeMessage ) truffleContext .leaveAndEnter (currentNode ,
329
+ var returnMessage = (FiberResumeMessage ) context .getThreadManager ().leaveAndEnter (currentNode ,
334
330
Interrupter .THREAD_INTERRUPT , (unused ) -> {
335
331
addToMessageQueue (fiber , new FiberSafepointMessage (fromFiber , action ));
336
332
return waitMessage (fromFiber , currentNode );
@@ -385,8 +381,7 @@ public void killOtherFibers(RubyThread thread) {
385
381
final TruffleSafepoint safepoint = TruffleSafepoint .getCurrent ();
386
382
boolean allowSideEffects = safepoint .setAllowSideEffects (false );
387
383
try {
388
- final TruffleContext truffleContext = context .getEnv ().getContext ();
389
- truffleContext .leaveAndEnter (DummyNode .INSTANCE , Interrupter .THREAD_INTERRUPT , (unused ) -> {
384
+ context .getThreadManager ().leaveAndEnter (DummyNode .INSTANCE , Interrupter .THREAD_INTERRUPT , (unused ) -> {
390
385
doKillOtherFibers (thread );
391
386
return BlockingAction .SUCCESS ;
392
387
}, null );
0 commit comments