Class: Quickdraw::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/quickdraw/queue.rb

Instance Method Summary collapse

Constructor Details

#initializeQueue

Returns a new instance of Queue.



4
5
6
7
# File 'lib/quickdraw/queue.rb', line 4

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

Instance Method Details

#<<(item) ⇒ Object



9
10
11
# File 'lib/quickdraw/queue.rb', line 9

def <<(item)
	@mutex.synchronize { @array << item }
end

#drainObject



13
14
15
# File 'lib/quickdraw/queue.rb', line 13

def drain
	yield(shift) until empty?
end

#empty?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/quickdraw/queue.rb', line 25

def empty?
	@array.empty?
end

#popObject



17
18
19
# File 'lib/quickdraw/queue.rb', line 17

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

#shiftObject



21
22
23
# File 'lib/quickdraw/queue.rb', line 21

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

#sizeObject



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

def size
	@array.size
end