Class: Pwrake::PriorityQueueArray
- Inherits:
-
Array
- Object
- Array
- Pwrake::PriorityQueueArray
- Defined in:
- lib/pwrake/task_queue.rb
Instance Method Summary collapse
Instance Method Details
#index(t) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pwrake/task_queue.rb', line 31 def index(t) if size < 40 return super(t) end task_id = t.task_id if last.task_id < task_id || first.task_id > task_id nil else lower = 0 upper = size-1 while lower+1 < upper mid = ((lower + upper) / 2).to_i if self[mid].task_id < task_id lower = mid else upper = mid end end mid = upper if self[mid].task_id == task_id Log.debug "--- TQA#index=#{mid}, task_id=#{task_id}" mid end end end |
#push(t) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/pwrake/task_queue.rb', line 10 def push(t) task_id = t.task_id if empty? || last.task_id <= task_id super(t) elsif first.task_id > task_id unshift(t) else lower = 0 upper = size-1 while lower+1 < upper mid = ((lower + upper) / 2).to_i if self[mid].task_id <= task_id lower = mid else upper = mid end end insert(upper,t) end end |