From 6b5e50186b0e65858407c3ca8576c5d1d1f13e06 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Wed, 19 Aug 2009 10:20:34 +0200 Subject: [PATCH] Convert ganeti-masterd to @utils.SignalHandled Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- daemons/ganeti-masterd | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/daemons/ganeti-masterd b/daemons/ganeti-masterd index 57fa9ec8b..d2da39e93 100755 --- a/daemons/ganeti-masterd +++ b/daemons/ganeti-masterd @@ -108,14 +108,17 @@ class IOServer(SocketServer.UnixStreamServer): """ self.request_workers.AddTask(self, request, client_address) - def serve_forever(self): + @utils.SignalHandled([signal.SIGINT, signal.SIGTERM]) + def serve_forever(self, signal_handlers=None): """Handle one request at a time until told to quit.""" - sighandler = utils.SignalHandler([signal.SIGINT, signal.SIGTERM]) - try: - while not sighandler.called: - self.handle_request() - finally: - sighandler.Reset() + assert isinstance(signal_handlers, dict) and \ + len(signal_handlers) > 0, \ + "Broken SignalHandled decorator" + # Since we use SignalHandled only once, the resulting dict will map all + # signals to the same handler. We'll just use the first one. + sighandler = signal_handlers.values()[0] + while not sighandler.called: + self.handle_request() def server_cleanup(self): """Cleanup the server. -- GitLab