blob: 16bd2f6b443457edadf0aead9bf037c7b1d56671 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
module FiberSpecs
class LoggingScheduler
attr_reader :events
def initialize
@events = []
end
def block(*args)
@events << { event: :block, fiber: Fiber.current, args: args }
Fiber.yield
end
def io_wait(*args)
@events << { event: :io_wait, fiber: Fiber.current, args: args }
Fiber.yield
end
def kernel_sleep(*args)
@events << { event: :kernel_sleep, fiber: Fiber.current, args: args }
Fiber.yield
end
def unblock(*args)
@events << { event: :unblock, fiber: Fiber.current, args: args }
Fiber.yield
end
def fiber_interrupt(*args)
@events << { event: :fiber_interrupt, fiber: Fiber.current, args: args }
Fiber.yield
end
end
end
|