diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-23 11:48:31 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-23 11:50:40 +0000 |
commit | 0d2c67abf8c92386802eccfbb6b124dd65597941 (patch) | |
tree | 80eb5e2a744c3c633a905879433fc3faaa7bec22 /lib/prserv | |
parent | ac1922d348613ca46a1047ad5ddf755eac16d568 (diff) | |
download | bitbake-contrib-0d2c67abf8c92386802eccfbb6b124dd65597941.tar.gz |
prserv/serv: Only restart the server if settings change
The server is now restarting when running commands which doesn't make
sense. Only restart if its configuration has changed. This should
potentially fix various memory resident bitbake usages too.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/prserv')
-rw-r--r-- | lib/prserv/serv.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/prserv/serv.py b/lib/prserv/serv.py index b854ba14b..3124b0799 100644 --- a/lib/prserv/serv.py +++ b/lib/prserv/serv.py @@ -449,29 +449,35 @@ class PRServiceConfigError(Exception): def auto_start(d): global singleton - # Shutdown any existing PR Server - auto_shutdown() - host_params = list(filter(None, (d.getVar('PRSERV_HOST') or '').split(':'))) if not host_params: + # Shutdown any existing PR Server + auto_shutdown() return None if len(host_params) != 2: + # Shutdown any existing PR Server + auto_shutdown() logger.critical('\n'.join(['PRSERV_HOST: incorrect format', 'Usage: PRSERV_HOST = "<hostname>:<port>"'])) raise PRServiceConfigError - if is_local_special(host_params[0], int(host_params[1])) and not singleton: + if is_local_special(host_params[0], int(host_params[1])): import bb.utils cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE")) if not cachedir: logger.critical("Please set the 'PERSISTENT_DIR' or 'CACHE' variable") raise PRServiceConfigError - bb.utils.mkdirhier(cachedir) dbfile = os.path.join(cachedir, "prserv.sqlite3") logfile = os.path.join(cachedir, "prserv.log") - singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0)) - singleton.start() + if singleton: + if singleton.dbfile != dbfile: + # Shutdown any existing PR Server as doesn't match config + auto_shutdown() + if not singleton: + bb.utils.mkdirhier(cachedir) + singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), ("localhost",0)) + singleton.start() if singleton: host, port = singleton.getinfo() else: |