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?)