Class: ParticlePool::Box

Inherits:
Object
  • Object
show all
Defined in:
lib/particle_pool/box.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value = nil) ⇒ Box



4
5
6
7
# File 'lib/particle_pool/box.rb', line 4

def initialize(value = nil)
  @value = value
  @extra = nil
end

Instance Attribute Details

#extraObject

Returns the value of attribute extra.



2
3
4
# File 'lib/particle_pool/box.rb', line 2

def extra
  @extra
end

#valueObject

Returns the value of attribute value.



2
3
4
# File 'lib/particle_pool/box.rb', line 2

def value
  @value
end

Instance Method Details

#await(s = 0.01) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/particle_pool/box.rb', line 9

def await(s=0.01)
  until @value
    Fiber.yield
    sleep(s)
  end
  @value
end

#await_block(s = 0.01, &b) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/particle_pool/box.rb', line 35

def await_block(s=0.01, &b)
  until b.()
    Fiber.yield
    sleep(s)
  end
  @value
end

#await_block_sync(s = 0.01, &b) ⇒ Object



43
44
45
46
# File 'lib/particle_pool/box.rb', line 43

def await_block_sync(s=0.01, &b)
  sleep(s) until b.()
  @value
end

#await_for(v, s = 0.01) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/particle_pool/box.rb', line 22

def await_for(v, s=0.01)
  until @value == v
    Fiber.yield
    sleep(s)
  end
  @value
end

#await_for_sync(v, s = 0.01) ⇒ Object



30
31
32
33
# File 'lib/particle_pool/box.rb', line 30

def await_for_sync(v, s=0.01)
  sleep(s) until @value == v
  @value
end

#await_sync(s = 0.01) ⇒ Object



17
18
19
20
# File 'lib/particle_pool/box.rb', line 17

def await_sync(s=0.01)
  sleep(s) until @value
  @value
end