Class: Simple::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/simple/queue.rb,
lib/simple/queue/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Instance Method Summary collapse

Constructor Details

#initializeQueue



5
6
7
8
# File 'lib/simple/queue.rb', line 5

def initialize
  @array = []
  @mutex = Mutex.new
end

Instance Method Details

#clearObject



10
11
12
# File 'lib/simple/queue.rb', line 10

def clear
  @mutex.synchronize { @array = [] }
end

#empty?Boolean



14
15
16
# File 'lib/simple/queue.rb', line 14

def empty?
  @mutex.synchronize { @array.empty? }
end

#lengthObject Also known as: size



18
19
20
# File 'lib/simple/queue.rb', line 18

def length
  @mutex.synchronize { @array.length }
end

#num_waitingObject



35
36
37
# File 'lib/simple/queue.rb', line 35

def num_waiting
  0
end

#pop(_ = nil) ⇒ Object Also known as: deq, shift



29
30
31
# File 'lib/simple/queue.rb', line 29

def pop(_=nil)
  @mutex.synchronize { @array.shift }
end

#push(obj) ⇒ Object Also known as: <<, enq



23
24
25
# File 'lib/simple/queue.rb', line 23

def push(obj)
  @mutex.synchronize { @array.push(obj) }
end