class Steep::Server::Master
def start
def start source_paths = project.targets.flat_map {|target| target.source_files.keys } bin_size = (source_paths.size / code_workers.size) + 1 source_paths.each_slice(bin_size).with_index do |paths, index| register_code_to_worker(paths, worker: code_workers[index]) end Thread.new do interaction_worker.reader.read do |message| process_message_from_worker(message) end end Thread.new do signature_worker.reader.read do |message| process_message_from_worker(message) end end code_workers.each do |worker| Thread.new do worker.reader.read do |message| process_message_from_worker(message) end end end Thread.new do reader.read do |request| process_message_from_client(request) end end while job = queue.pop writer.write(job) end writer.io.close each_worker do |w| w.shutdown() end end