lib/gitdocs/manager.rb in gitdocs-0.4.6 vs lib/gitdocs/manager.rb in gitdocs-0.4.7

- old
+ new

@@ -34,27 +34,31 @@ @runners = config.shares.map { |share| Runner.new(share) } @runners.each(&:run) # Start the web front-end if self.config.global.start_web_frontend Server.new(self, *@runners).start - i = 0 - web_started = false - begin - TCPSocket.open('127.0.0.1', 8888).close - web_started = true - rescue Errno::ECONNREFUSED - self.log "Retrying server loop..." - sleep 0.2 - i += 1 - retry if i <= 20 - end - self.log "Web server running: #{web_started}" - system("open http://localhost:8888/") if self.config.global.load_browser_on_startup && web_started + EM.defer( proc { + i = 0 + web_started = false + begin + TCPSocket.open('127.0.0.1', 8888).close + web_started = true + rescue Errno::ECONNREFUSED + self.log "Retrying server loop..." + sleep 0.2 + i += 1 + retry if i <= 20 + end + system("open http://localhost:8888/") if self.config.global.load_browser_on_startup && web_started + }, proc { + self.log "Web server running!" + }) end end rescue Exception => e # Report all errors in log self.log(e.class.inspect + " - " + e.inspect + " - " + e.message.inspect, :error) self.log(e.backtrace.join("\n"), :error) + raise ensure self.log("Gitdocs is terminating...goodbye\n\n") end def restart \ No newline at end of file