Class: Concurrent::Channel::Buffer::Timer
- Inherits:
-
Base
- Object
- Synchronization::LockableObject
- Base
- Concurrent::Channel::Buffer::Timer
show all
- Defined in:
- lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb
Direct Known Subclasses
Ticker
Instance Attribute Summary
Attributes inherited from Base
#capacity
Instance Method Summary
collapse
Methods inherited from Base
#blocking?, #close, #closed?, #empty?, #full?, #initialize, #size
Instance Method Details
#next ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb', line 31
def next
loop do
tick, more = do_poll
return tick, more if tick
Thread.pass
end
end
|
#offer(item) ⇒ Object
16
17
18
|
# File 'lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb', line 16
def offer(item)
false
end
|
#poll ⇒ Object
39
40
41
42
43
|
# File 'lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb', line 39
def poll
tick, _ = do_poll
tick = Concurrent::NULL unless tick
tick
end
|
#put(item) ⇒ Object
12
13
14
|
# File 'lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb', line 12
def put(item)
false
end
|
#take ⇒ Object
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/concurrent-ruby-edge/concurrent/channel/buffer/timer.rb', line 20
def take
loop do
tick, _ = do_poll
if tick
return tick
else
Thread.pass
end
end
end
|