lib/yarn/server.rb in yarn-0.0.2 vs lib/yarn/server.rb in yarn-0.0.9

- old
+ new

@@ -12,19 +12,22 @@ opts = { output: $stdout, host: '127.0.0.1', port: 3000, workers: 4, + log: true, rack: "off" }.merge(options) @app = nil @app = load_rack_app(opts[:rack]) unless opts[:rack] == "off" + @opts = opts @host, @port, @num_workers = opts[:host], opts[:port], opts[:workers] @workers = [] $output, $debug = opts[:output], opts[:debug] + $log = opts[:log] || opts[:debug] end def load_rack_app(app_path) if File.exists?(app_path) config_file = File.read(app_path) @@ -46,17 +49,23 @@ Process.waitall end def init_workers @num_workers.times do - @workers << fork do - trap("INT") { exit } - loop do - handler ||= @app ? RackHandler.new(@app) : RequestHandler.new - session = @socket.accept - handler.run session - end - end + @workers << fork_worker + end + end + + def fork_worker + fork { worker } + end + + def worker + trap("INT") { exit } + loop do + @handler ||= @app ? RackHandler.new(@app,@opts) : RequestHandler.new + session = @socket.accept + @handler.run session end end def stop @socket.close if (@socket && !@socket.closed?)