bitbake: Simplfy pre and post cooker hooks
authorRichard Purdie <rpurdie@linux.intel.com>
Sun, 28 Nov 2010 15:01:08 +0000 (15:01 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Sun, 28 Nov 2010 21:54:31 +0000 (13:54 -0800)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/cooker.py
bitbake/lib/bb/server/none.py
bitbake/lib/bb/server/xmlrpc.py

index 33eb65e..054dac8 100644 (file)
@@ -70,7 +70,7 @@ class BBCooker:
         self.bb_cache = None
 
         if server:
-            self.server = server.BitBakeServer(self, self.pre_serve, self.post_serve)
+            self.server = server.BitBakeServer(self)
 
         self.configuration = configuration
 
@@ -925,6 +925,8 @@ class BBCooker:
 
 
 def server_main(cooker, func, *args):
+    cooker.pre_serve()
+
     if cooker.configuration.profile:
         try:
             import cProfile as profile
@@ -956,11 +958,12 @@ def server_main(cooker, func, *args):
 
         print("Raw profiling information saved to profile.log and processed statistics to profile.log.processed")
 
-        return ret
     else:
-        return func(*args)
+        ret = func(*args)
 
+    cooker.post_serve()
 
+    return ret
 
 class CookerExit(bb.event.Event):
     """
index 38f713c..dafb2fe 100644 (file)
@@ -109,11 +109,9 @@ class BitBakeServer():
     # remove this when you're done with debugging
     # allow_reuse_address = True
 
-    def __init__(self, cooker, pre_serve, post_serve):
+    def __init__(self, cooker):
         self._idlefuns = {}
         self.commands = BitBakeServerCommands(self, cooker)
-        self.pre_serve = pre_serve
-        self.post_serve = post_serve
 
     def register_idle_function(self, function, data):
         """Register a function to be called while the server is idle"""
@@ -169,10 +167,7 @@ class BitBakeServerFork():
 
 class BitbakeUILauch():
     def launch(self, serverinfo, uifunc, *args):
-        serverinfo.server.pre_serve()
-        ret = bb.cooker.server_main(serverinfo.cooker, uifunc, *args)
-        serverinfo.server.post_serve()
-        return ret
+        return bb.cooker.server_main(serverinfo.cooker, uifunc, *args)
 
 class BitBakeServerConnection():
     def __init__(self, serverinfo):
index 30b83d2..5d3cc3e 100644 (file)
@@ -87,7 +87,7 @@ class BitBakeServer(SimpleXMLRPCServer):
     # remove this when you're done with debugging
     # allow_reuse_address = True
 
-    def __init__(self, cooker, pre_serve, post_serve, interface = ("localhost", 0)):
+    def __init__(self, cooker, interface = ("localhost", 0)):
         """
         Constructor
         """
@@ -100,8 +100,6 @@ class BitBakeServer(SimpleXMLRPCServer):
         commands = BitBakeServerCommands(self, cooker)
         self.autoregister_all_functions(commands, "")
         self.cooker = cooker
-        self.pre_serve = pre_serve
-        self.post_serve = post_serve
 
     def autoregister_all_functions(self, context, prefix):
         """
@@ -125,8 +123,6 @@ class BitBakeServer(SimpleXMLRPCServer):
         """
         Serve Requests. Overloaded to honor a quit command
         """
-        self.pre_serve()
-
         self.quit = False
         self.timeout = 0 # Run Idle calls for our first callback
         while not self.quit:
@@ -163,7 +159,6 @@ class BitBakeServer(SimpleXMLRPCServer):
             except:
                 pass
 
-        self.post_serve()
         self.server_close()
         return