diff --git a/src/main.d b/src/main.d index cc81d3b7..87616733 100644 --- a/src/main.d +++ b/src/main.d @@ -1139,12 +1139,14 @@ extern(C) nothrow @nogc @system void exitHandler(int value) { try { assumeNoGC ( () { log.log("Got termination signal, performing clean up"); - // was itemDb initialised? + // Wait for all parallel jobs that depend on the database to complete + taskPool.finish(true); + // Was itemDb initialised? if (itemDB.isDatabaseInitialised()) { // Make sure the .wal file is incorporated into the main db before we exit log.log("Shutting down DB connection and merging temporary data"); itemDB.performVacuum(); - destroy(itemDB); + object.destroy(itemDB); } })(); } catch(Exception e) {}