Skip to content

Instantly share code, notes, and snippets.

@headius
Created January 28, 2014 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save headius/40ed4a4435e0a4e0ba44 to your computer and use it in GitHub Desktop.
Save headius/40ed4a4435e0a4e0ba44 to your computer and use it in GitHub Desktop.
diff --git a/core/src/main/java/org/jruby/ext/fiber/ThreadFiber.java b/core/src/main/java/org/jruby/ext/fiber/ThreadFiber.java
index a33c89b..999425b 100644
--- a/core/src/main/java/org/jruby/ext/fiber/ThreadFiber.java
+++ b/core/src/main/java/org/jruby/ext/fiber/ThreadFiber.java
@@ -179,7 +179,7 @@ public class ThreadFiber extends RubyObject implements ExecutionContext {
static RubyThread createThread(final Ruby runtime, final FiberData data, final SizedQueue queue, final Block block) {
final AtomicReference<RubyThread> fiberThread = new AtomicReference();
- Thread thread = new Thread() {
+ runtime.getExecutor().execute(new Runnable() {
public void run() {
ThreadContext context = runtime.getCurrentContext();
context.setFiber(data.fiber.get());
@@ -212,12 +212,13 @@ public class ThreadFiber extends RubyObject implements ExecutionContext {
}
} finally {
data.queue.shutdown();
+ runtime.getThreadService().disposeCurrentThread();
}
}
- };
- thread.setDaemon(true);
- thread.setName("FiberThread#" + data.fiber.get().id());
- thread.start();
+ });
+// thread.setDaemon(true);
+// thread.setName("FiberThread#" + data.fiber.get().id());
+// thread.start();
while (fiberThread.get() == null) {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment