Skip to content

Commit 1a00426

Browse files
committed
[GR-59720] Remove DummyNode, TruffleSafepoint.poll() now accepts null for such cases
PullRequest: truffleruby/4470
2 parents 1e51619 + c2867b2 commit 1a00426

8 files changed

+9
-42
lines changed

src/main/java/org/truffleruby/builtins/CoreMethodNodeManager.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.truffleruby.annotations.CoreModule;
2121
import org.truffleruby.language.methods.CachedLazyCallTargetSupplier;
2222
import org.truffleruby.core.CoreLibrary;
23-
import org.truffleruby.core.DummyNode;
2423
import org.truffleruby.core.array.ArrayUtils;
2524
import org.truffleruby.core.inlined.AlwaysInlinedMethodNode;
2625
import org.truffleruby.core.klass.RubyClass;
@@ -256,7 +255,7 @@ private static void addMethod(
256255
String[] names,
257256
Arity arity,
258257
Visibility visibility) {
259-
TruffleSafepoint.poll(DummyNode.INSTANCE);
258+
TruffleSafepoint.poll(null);
260259

261260
for (String name : names) {
262261
final SharedMethodInfo sharedMethodInfo = makeSharedMethodInfo(

src/main/java/org/truffleruby/core/DummyNode.java

-27
This file was deleted.

src/main/java/org/truffleruby/core/ReferenceProcessingService.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ private void createProcessingThread(ReferenceProcessingService<?, ?> service) {
117117
final String sharingReason = "creating " + THREAD_NAME + " thread for " +
118118
service.getClass().getSimpleName();
119119

120-
threadManager.initialize(newThread, DummyNode.INSTANCE, THREAD_NAME, sharingReason, () -> {
120+
threadManager.initialize(newThread, null, THREAD_NAME, sharingReason, () -> {
121121
while (true) {
122-
final PhantomProcessingReference<?, ?> reference = threadManager.runUntilResult(DummyNode.INSTANCE,
122+
final PhantomProcessingReference<?, ?> reference = threadManager.runUntilResult(null,
123123
() -> (PhantomProcessingReference<?, ?>) processingQueue.remove());
124124
reference.service().processReference(context, language, reference);
125125
}

src/main/java/org/truffleruby/core/VMPrimitiveNodes.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ boolean watchSignalProc(Object signalString, boolean isRubyDefaultHandler, RubyP
309309

310310
return registerHandler(signalName, signal -> {
311311
var rootThread = context.getThreadManager().getRootThread();
312-
context.getSafepointManager().pauseRubyThreadAndExecute(DummyNode.INSTANCE,
312+
context.getSafepointManager().pauseRubyThreadAndExecute(null,
313313
callProcSafepointAction(proc, signal, rootThread));
314314
}, isRubyDefaultHandler);
315315
}

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.oracle.truffle.api.TruffleSafepoint;
2020
import org.truffleruby.RubyContext;
2121
import org.truffleruby.RubyLanguage;
22-
import org.truffleruby.core.DummyNode;
2322
import org.truffleruby.core.basicobject.BasicObjectNodes.ObjectIDNode;
2423
import org.truffleruby.core.exception.ExceptionOperations;
2524
import org.truffleruby.core.exception.RubyException;
@@ -371,7 +370,7 @@ public void killOtherFibers(RubyThread thread) {
371370
final TruffleSafepoint safepoint = TruffleSafepoint.getCurrent();
372371
boolean allowSideEffects = safepoint.setAllowSideEffects(false);
373372
try {
374-
context.getThreadManager().leaveAndEnter(DummyNode.INSTANCE, Interrupter.THREAD_INTERRUPT, (unused) -> {
373+
context.getThreadManager().leaveAndEnter(null, Interrupter.THREAD_INTERRUPT, (unused) -> {
375374
doKillOtherFibers(thread);
376375
return BlockingAction.SUCCESS;
377376
}, null);

src/main/java/org/truffleruby/core/thread/ThreadManager.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.truffleruby.RubyLanguage;
3333
import org.truffleruby.annotations.SuppressFBWarnings;
3434
import org.truffleruby.collections.ConcurrentWeakSet;
35-
import org.truffleruby.core.DummyNode;
3635
import org.truffleruby.core.InterruptMode;
3736
import org.truffleruby.core.basicobject.BasicObjectNodes.ObjectIDNode;
3837
import org.truffleruby.core.exception.RubyException;
@@ -618,7 +617,7 @@ public void killAndWaitOtherThreads() {
618617
// Wait and join all Java threads we created
619618
for (Thread thread : rubyManagedThreads) {
620619
if (thread != Thread.currentThread()) {
621-
runUntilResultKeepStatus(DummyNode.INSTANCE, t -> {
620+
runUntilResultKeepStatus(null, t -> {
622621
t.join();
623622
return BlockingAction.SUCCESS;
624623
}, thread);
@@ -634,8 +633,7 @@ private void doKillOtherThreads() {
634633
SafepointPredicate predicate = (context, thread, action) -> Thread.currentThread() != initiatingJavaThread &&
635634
language.getCurrentFiber() == thread.getCurrentFiber();
636635

637-
context.getSafepointManager().pauseAllThreadsAndExecute(
638-
DummyNode.INSTANCE,
636+
context.getSafepointManager().pauseAllThreadsAndExecute(null,
639637
new SafepointAction("kill other threads for shutdown", predicate, true, true) {
640638
@Override
641639
public void run(RubyThread rubyThread, Node currentNode) {

src/main/java/org/truffleruby/parser/YARPBaseTranslator.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.prism.AbstractNodeVisitor;
1818
import org.prism.Nodes;
1919
import org.truffleruby.RubyLanguage;
20-
import org.truffleruby.core.DummyNode;
2120
import org.truffleruby.core.array.ArrayUtils;
2221
import org.truffleruby.core.encoding.RubyEncoding;
2322
import org.truffleruby.core.encoding.TStringUtils;
@@ -202,7 +201,7 @@ protected final void assignPositionOnly(Nodes.Node[] nodes, RubyNode rubyNode) {
202201

203202
protected final void copyNewlineFlag(Nodes.Node yarpNode, RubyNode rubyNode) {
204203
if (yarpNode.hasNewLineFlag()) {
205-
TruffleSafepoint.poll(DummyNode.INSTANCE);
204+
TruffleSafepoint.poll(currentNode);
206205

207206
if (parseEnvironment.isCoverageEnabled()) {
208207
rubyNode.unsafeSetIsCoverageLine();

src/main/java/org/truffleruby/parser/YARPTranslatorDriver.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.truffleruby.RubyLanguage;
5050
import org.truffleruby.annotations.Split;
5151
import org.truffleruby.core.CoreLibrary;
52-
import org.truffleruby.core.DummyNode;
5352
import org.truffleruby.core.binding.BindingNodes;
5453
import org.truffleruby.core.binding.SetBindingFrameForEvalNode;
5554
import org.truffleruby.core.encoding.Encodings;
@@ -343,7 +342,7 @@ private String getMethodName(ParserContext parserContext, MaterializedFrame pare
343342
public static ParseResult parseToYARPAST(RubySource rubySource, String sourcePath, byte[] sourceBytes,
344343
List<List<String>> localsInScopes, boolean frozenStringLiteral, Options cliOptions,
345344
ParserContext parserContext) {
346-
TruffleSafepoint.poll(DummyNode.INSTANCE);
345+
TruffleSafepoint.poll(null);
347346

348347
final byte[] filepath = sourcePath.getBytes(Encodings.FILESYSTEM_CHARSET);
349348
int line = rubySource.getLineOffset() + 1;

0 commit comments

Comments
 (0)