WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Do not bother waiting for the old HttpSer

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Do not bother waiting for the old HttpServer and UnixHttpServer threads when
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 28 Nov 2006 13:40:17 +0000
Delivery-date: Tue, 28 Nov 2006 05:40:25 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Node ID dc1c8ae0a87aadfb6c098ad1e3e81babcc3d09fc
# Parent  b6c6a1efbfaf49a1d999699cb9b7dd1f4b32bf3f
Do not bother waiting for the old HttpServer and UnixHttpServer threads when
shutting down -- they don't have exit handling themselves and ought to just
be made daemon threads.

Added some logging to dialog shutdown problems.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
 tools/python/xen/xend/server/SrvServer.py |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff -r b6c6a1efbfaf -r dc1c8ae0a87a tools/python/xen/xend/server/SrvServer.py
--- a/tools/python/xen/xend/server/SrvServer.py Mon Nov 27 12:00:01 2006 +0000
+++ b/tools/python/xen/xend/server/SrvServer.py Mon Nov 27 12:50:30 2006 +0000
@@ -62,12 +62,14 @@ class XendServers:
 
     def __init__(self):
         self.servers = []
+        self.cleaningUp = False
 
     def add(self, server):
         self.servers.append(server)
 
     def cleanup(self, signum = 0, frame = None):
         log.debug("SrvServer.cleanup()")
+        self.cleaningUp = True
         for server in self.servers:
             try:
                 server.shutdown()
@@ -84,7 +86,9 @@ class XendServers:
         Vifctl.network('start')
         threads = []
         for server in self.servers:
-            thread = Thread(target=server.run)
+            thread = Thread(target=server.run, name=server.__class__.__name__)
+            if isinstance(server, HttpServer):
+                thread.setDaemon(True)
             thread.start()
             threads.append(thread)
 
@@ -117,12 +121,16 @@ class XendServers:
         #   Reason:   The above will cause python signal handlers to be
         #             blocked so we're not able to catch SIGTERM in any
         #             way for cleanup
-        runningThreads = len([t for t in threads if t.isAlive()])
-        while runningThreads > 0:
+        runningThreads = threads
+        while len(runningThreads) > 0:
             try:
                 for t in threads:
                     t.join(1.0)
-                runningThreads = len([t for t in threads if t.isAlive()])
+                runningThreads = [t for t in threads
+                                  if t.isAlive() and not t.isDaemon()]
+                if self.cleaningUp and len(runningThreads) > 0:
+                    log.debug("Waiting for %s." %
+                              [x.getName() for x in runningThreads])
             except:
                 pass
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Do not bother waiting for the old HttpServer and UnixHttpServer threads when, Xen patchbot-unstable <=