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>
This commit is contained in:
Richard Purdie
2017-07-24 13:44:05 +01:00
parent 57196bc6e4
commit 76ecfa5f69
2 changed files with 21 additions and 23 deletions

View File

@@ -1585,28 +1585,6 @@ class BBCooker:
self.databuilder.reset()
self.data = self.databuilder.data
def server_main(cooker, func, *args):
cooker.pre_serve()
if cooker.configuration.profile:
try:
import cProfile as profile
except:
import profile
prof = profile.Profile()
ret = profile.Profile.runcall(prof, func, *args)
prof.dump_stats("profile.log")
bb.utils.process_profilelog("profile.log")
print("Raw profiling information saved to profile.log and processed statistics to profile.log.processed")
else:
ret = func(*args)
cooker.post_serve()
return ret
class CookerExit(bb.event.Event):
"""

View File

@@ -103,9 +103,27 @@ class ProcessServer(multiprocessing.Process):
except:
pass
bb.cooker.server_main(self.cooker, self.main)
if self.cooker.configuration.profile:
try:
import cProfile as profile
except:
import profile
prof = profile.Profile()
ret = profile.Profile.runcall(prof, self.main)
prof.dump_stats("profile.log")
bb.utils.process_profilelog("profile.log")
print("Raw profiling information saved to profile.log and processed statistics to profile.log.processed")
else:
ret = self.main()
return ret
def main(self):
self.cooker.pre_serve()
bb.utils.set_process_name("Cooker")
ready = []
@@ -184,6 +202,8 @@ class ProcessServer(multiprocessing.Process):
except:
pass
self.cooker.post_serve()
# Remove the socket file so we don't get any more connections to avoid races
os.unlink(self.sockname)
self.sock.close()