Skip to content

Commit 4be53f4

Browse files
committed
[GR-30217] Update Sulong to get dlsym(RTLD_DEFAULT, symbol) support
PullRequest: truffleruby/2698
2 parents 8c1ecfd + 7087fdf commit 4be53f4

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

mx.truffleruby/suite.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{
88
"name": "regex",
99
"subdir": True,
10-
"version": "f99631396f42d8f1b8850cf5efc34f136cdef8ff",
10+
"version": "e9ddfb90978a31231e16aae7880c3d2b57a63ea3",
1111
"urls": [
1212
{"url": "https://github.com/oracle/graal.git", "kind": "git"},
1313
{"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},
@@ -16,7 +16,7 @@
1616
{
1717
"name": "sulong",
1818
"subdir": True,
19-
"version": "f99631396f42d8f1b8850cf5efc34f136cdef8ff",
19+
"version": "e9ddfb90978a31231e16aae7880c3d2b57a63ea3",
2020
"urls": [
2121
{"url": "https://github.com/oracle/graal.git", "kind": "git"},
2222
{"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,9 +316,8 @@ public void start(RubyFiber fiber, Thread javaThread) {
316316

317317
if (Thread.currentThread() == javaThread) {
318318
context.getThreadManager().rubyFiber.set(fiber);
319-
}
320-
if (!threadManager.isRubyManagedThread(javaThread)) {
321-
context.getThreadManager().rubyFiberForeignMap.put(javaThread, fiber);
319+
} else {
320+
context.getThreadManager().javaThreadToRubyFiber.put(javaThread, fiber);
322321
}
323322

324323
fiber.thread = javaThread;
@@ -345,7 +344,7 @@ public void cleanup(RubyFiber fiber, Thread javaThread) {
345344
if (Thread.currentThread() == javaThread) {
346345
threadManager.rubyFiber.remove();
347346
}
348-
threadManager.rubyFiberForeignMap.remove(javaThread);
347+
threadManager.javaThreadToRubyFiber.remove(javaThread);
349348

350349
fiber.finishedLatch.countDown();
351350
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ public class ThreadManager {
7777

7878
private final Set<RubyThread> runningRubyThreads = Collections.newSetFromMap(new ConcurrentHashMap<>());
7979

80+
/** The set of Java threads TruffleRuby created, and is responsible to exit in {@link #killAndWaitOtherThreads()} */
8081
private final Set<Thread> rubyManagedThreads = Collections.newSetFromMap(new ConcurrentHashMap<>());
8182

82-
public final Map<Thread, RubyFiber> rubyFiberForeignMap = new ConcurrentHashMap<>();
83+
public final Map<Thread, RubyFiber> javaThreadToRubyFiber = new ConcurrentHashMap<>();
8384
public final ThreadLocal<RubyFiber> rubyFiber = ThreadLocal
84-
.withInitial(() -> rubyFiberForeignMap.get(Thread.currentThread()));
85+
.withInitial(() -> javaThreadToRubyFiber.get(Thread.currentThread()));
8586

8687
private boolean nativeInterrupt;
8788
private Timer nativeInterruptTimer;
@@ -116,13 +117,11 @@ public void dispose() {
116117

117118
public void initializeMainThread(Thread mainJavaThread) {
118119
rootJavaThread = mainJavaThread;
119-
rubyManagedThreads.add(rootJavaThread);
120120
start(rootThread, rootJavaThread);
121121
}
122122

123123
public void resetMainThread() {
124124
cleanup(rootThread, rootJavaThread);
125-
rubyManagedThreads.remove(rootJavaThread);
126125
rootJavaThread = null;
127126
}
128127

0 commit comments

Comments
 (0)