diff options
Diffstat (limited to 'bitbake/lib/prserv/serv.py')
-rw-r--r-- | bitbake/lib/prserv/serv.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py index a4ae229134..1303f12b45 100644 --- a/bitbake/lib/prserv/serv.py +++ b/bitbake/lib/prserv/serv.py @@ -62,9 +62,6 @@ class PRServer(SimpleXMLRPCServer): self.register_function(self.importone, "importone") self.register_introspection_functions() - self.db = prserv.db.PRData(self.dbfile) - self.table = self.db["PRMAIN"] - self.requestqueue = Queue.Queue() self.handlerthread = threading.Thread(target = self.process_request_thread) self.handlerthread.daemon = False @@ -100,10 +97,12 @@ class PRServer(SimpleXMLRPCServer): self.table.sync_if_dirty() def sigint_handler(self, signum, stack): - self.table.sync() + if self.table: + self.table.sync() def sigterm_handler(self, signum, stack): - self.table.sync() + if self.table: + self.table.sync() raise SystemExit def process_request(self, request, client_address): @@ -145,6 +144,10 @@ class PRServer(SimpleXMLRPCServer): bb.utils.set_process_name("PRServ") + # DB connection must be created after all forks + self.db = prserv.db.PRData(self.dbfile) + self.table = self.db["PRMAIN"] + logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" % (self.dbfile, self.host, self.port, str(os.getpid()))) |