Method: Fairy::FileBufferdQueue#pop

Defined in:
lib/fairy/share/port.rb

#popObject



1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
# File 'lib/fairy/share/port.rb', line 1171

def pop
  @queue_mon.synchronize do
	while @pop_queue.empty?
	  if @pop_queue.equal?(@push_queue)
 @queue_cv.wait
	  elsif @buffers_queue.nil?
 @pop_queue = @push_queue
	  elsif @buffers_queue.empty?
 @pop_queue = @push_queue
 @push_queue = []
 @buffers_queue = nil
	  else
 @pop_queue = restore_2ndmemory
	  end
	end
	@pop_queue.shift
  end
end