diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb index 65fab1a833..195bd21421 100644 --- a/lib/rdoc/rdoc.rb +++ b/lib/rdoc/rdoc.rb @@ -546,10 +546,6 @@ def generate def start_server server = RDoc::Server.new(self, @options.server_port) - - trap('INT') { server.shutdown } - trap('TERM') { server.shutdown } - server.start end diff --git a/lib/rdoc/server.rb b/lib/rdoc/server.rb index 724d492c63..3d08d18248 100644 --- a/lib/rdoc/server.rb +++ b/lib/rdoc/server.rb @@ -91,15 +91,10 @@ def start loop do client = @tcp_server.accept Thread.new(client) { |c| handle_client(c) } - rescue IOError - break end - end - - ## - # Shuts down the server. - - def shutdown + rescue Interrupt + # Ctrl+C + ensure @running = false @tcp_server&.close @watcher_thread&.join(2)