-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
I'm using fiber_scheduler 0.13.0. Here's my code:
require 'fiber_scheduler'
Fiber.set_scheduler FiberScheduler.new
Fiber.schedule do
t = Thread.new do
end
t.join 3
endSometimes t.join 3 returns quickly, which is what I want to happen since thread t almost immediately terminates. However, usually t.join 3 takes 3 seconds to return, which means something (the fiber scheduler, I think) prevented t.join from waking up early.
By adding debug logging to fiber_scheduler, I've figured out two things:
- when
t.join 3returns quickly, it's becauseFiberScheduler::Selector#selectcalledIO.select([], [], nil, 0) - when
t.join 3returns after 3 seconds, it's becauseFiberScheduler::Selector#selectcalledIO.select([], [], nil, 3)
This feels like a bug in fiber_scheduler. Am I right?
(If it matters, I'm using Linux on x86_64, and I installed fiber_scheduler through Bundler.)
Metadata
Metadata
Assignees
Labels
No labels