# File lib/deep_test/spec/runner.rb, line 27
27:       def process_work_units
28:         prepare
29: 
30:         examples = example_groups.map {|g| g.send(:examples_to_run)}.flatten
31:         examples_by_location = {}
32:         examples.each do |example|
33:           raise "duplicate example: #{example.identifier}" if examples_by_location[example.identifier]
34:           examples_by_location[example.identifier] = example
35:           blackboard.write_work Spec::WorkUnit.new(example.identifier)
36:         end
37: 
38:         success = true
39: 
40:         missing_exmaples = ResultReader.new(blackboard).read(examples_by_location) do |example, result|
41:           @options.reporter.example_finished(example, result.error)
42:           success &= result.success?
43:         end
44: 
45:         success &= missing_exmaples.empty?
46: 
47:         missing_exmaples.each do |identifier, example|
48:           @options.reporter.example_finished(example, WorkUnitNeverReceivedError.new)
49:         end
50: 
51:         success
52:       ensure
53:         finish
54:       end