94: def Benelux.update_global_timeline
95: @@mutex.synchronize do
96: dthreads = Benelux.known_threads.select { |t|
97: !t.timeline.nil? && (t.nil? || !t.status) &&
98: !@processed_dead_threads.member?(t)
99: }
100:
101: rthreads = Benelux.known_threads.select { |t|
102: !t.rotated_timelines.empty?
103: }
104: dtimelines = dthreads.collect { |t| t.timeline }
105:
106: rthreads.each { |t|
107:
108:
109: while !t.rotated_timelines.empty?
110: dtimelines.push t.rotated_timelines.shift
111: end
112: }
113: Benelux.ld [:update_global_timeline, dthreads.size, rthreads.size, dtimelines.size].inspect
114:
115: @timeline_chunk = Benelux::Timeline.new
116: @timeline_chunk.merge! *dtimelines
117: @processed_dead_threads.push *dthreads
118: tl = Benelux.timeline.merge! Benelux.timeline_chunk
119: @timeline_updates += 1
120: tl
121: end
122: end