summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/server
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-24 13:44:05 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-24 16:57:14 +0100
commit76ecfa5f69429371167cdaf3e4e3a24d8ee77ac3 (patch)
tree768a514eab9a12e263e1eb872e927c2db13c4fc7 /bitbake/lib/bb/server
parent57196bc6e4a07f855b3073b6120211ddda179077 (diff)
downloadpoky-76ecfa5f69429371167cdaf3e4e3a24d8ee77ac3.tar.gz
bitbake: cooker/process: Drop server_main function
Now that there is only one server, this abstraction is no longer needed and causes indrection/confusion. The server shutdown is also broken with the cooker post_server calls happening too late, leading to "lock held" warnings in the logs if PRServ is enabled. Remove the abstraction and put the shutdown calls in the right order with respect to the locking. (Bitbake rev: c0ddde7cf680225127d6285685652b905ed176c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/server')
-rw-r--r--bitbake/lib/bb/server/process.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index 01d9f2f014..85beaae014 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -103,9 +103,27 @@ class ProcessServer(multiprocessing.Process):
103 except: 103 except:
104 pass 104 pass
105 105
106 bb.cooker.server_main(self.cooker, self.main) 106 if self.cooker.configuration.profile:
107 try:
108 import cProfile as profile
109 except:
110 import profile
111 prof = profile.Profile()
112
113 ret = profile.Profile.runcall(prof, self.main)
114
115 prof.dump_stats("profile.log")
116 bb.utils.process_profilelog("profile.log")
117 print("Raw profiling information saved to profile.log and processed statistics to profile.log.processed")
118
119 else:
120 ret = self.main()
121
122 return ret
107 123
108 def main(self): 124 def main(self):
125 self.cooker.pre_serve()
126
109 bb.utils.set_process_name("Cooker") 127 bb.utils.set_process_name("Cooker")
110 128
111 ready = [] 129 ready = []
@@ -184,6 +202,8 @@ class ProcessServer(multiprocessing.Process):
184 except: 202 except:
185 pass 203 pass
186 204
205 self.cooker.post_serve()
206
187 # Remove the socket file so we don't get any more connections to avoid races 207 # Remove the socket file so we don't get any more connections to avoid races
188 os.unlink(self.sockname) 208 os.unlink(self.sockname)
189 self.sock.close() 209 self.sock.close()