Class: LittleGhost::CodeMode::Javascript::Host::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/little_ghost/code_mode/javascript/host.rb

Instance Method Summary collapse

Constructor Details

#initialize(input: $stdin, output: $stdout) ⇒ Runner

Returns a new instance of Runner.



278
279
280
281
282
283
284
# File 'lib/little_ghost/code_mode/javascript/host.rb', line 278

def initialize(input: $stdin, output: $stdout)
  @input = input
  @output = output
  @programs = {}
  @programs_mutex = Mutex.new
  @writer_mutex = Mutex.new
end

Instance Method Details

#runObject



286
287
288
289
290
291
292
293
294
# File 'lib/little_ghost/code_mode/javascript/host.rb', line 286

def run
  while (message = Protocol.read(@input))
    receive(message)
  end
ensure
  programs = @programs_mutex.synchronize { @programs.values.dup }
  programs.each(&:terminate)
  programs.each { |program| program.join(0.5) }
end