diff options
Diffstat (limited to 'bitbake/lib/bb/server/process.py')
-rw-r--r-- | bitbake/lib/bb/server/process.py | 22 |
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() |