diff --git a/src/calibre/srv/handler.py b/src/calibre/srv/handler.py index be49993296..9633a3df44 100644 --- a/src/calibre/srv/handler.py +++ b/src/calibre/srv/handler.py @@ -60,6 +60,10 @@ class LibraryBroker(object): raise return ans + def close(self): + for db in self.lmap.itervalues(): + db.close() + self.lmap = {} class Context(object): @@ -137,3 +141,6 @@ class Handler(object): def set_log(self, log): self.router.ctx.log = log + def close(self): + self.router.ctx.library_broker.close() + diff --git a/src/calibre/srv/tests/base.py b/src/calibre/srv/tests/base.py index 5b856d0f8d..31fced6cdc 100644 --- a/src/calibre/srv/tests/base.py +++ b/src/calibre/srv/tests/base.py @@ -137,3 +137,7 @@ class LibraryServer(TestServer): ) self.handler.set_log(self.loop.log) specialize(self) + + def __exit__(self, *args): + self.loop.stop() + self.handler.close()