# File lib/deep_test/result_reader.rb, line 7
 7:     def read(original_work_units_by_id)
 8:       work_units_by_id = original_work_units_by_id.dup
 9:       errors = 0
10: 
11:       begin
12:         until errors == work_units_by_id.size
13:           Thread.pass
14:           result = @blackboard.take_result
15:           next if result.nil?
16: 
17:           if Worker::Error === result
18:             puts result
19:             errors += 1
20:           else
21:             if result.respond_to?(:output) && (output = result.output)
22:               print output
23:             end
24: 
25:             work_unit = work_units_by_id.delete(result.identifier)
26:             yield [work_unit, result]
27:           end
28:         end
29:       rescue Server::ResultOverdueError
30:         DeepTest.logger.error("Results are overdue from server, ending run")
31:       end
32: 
33:       work_units_by_id
34:     end