From 831291eaea6b47378b9f12af36cc7c010348b039 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 12 Nov 2014 11:53:22 +0530 Subject: [PATCH] Disable garbage collector during save to disk --- src/calibre/gui2/save.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/save.py b/src/calibre/gui2/save.py index 1065b0a8fa..28ee401a0b 100644 --- a/src/calibre/gui2/save.py +++ b/src/calibre/gui2/save.py @@ -6,7 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2014, Kovid Goyal ' -import traceback, errno, os, time, shutil +import traceback, errno, os, time, shutil, gc from collections import namedtuple, defaultdict from tempfile import SpooledTemporaryFile from Queue import Empty @@ -74,8 +74,6 @@ class Saver(QObject): def __init__(self, book_ids, db, opts, root, parent=None): QObject.__init__(self, parent) - if parent is not None: - setattr(parent, 'no_gc_%s' % id(self), self) self.db = db.new_api self.plugboards = self.db.pref('plugboards', {}) self.template_functions = self.db.pref('user_template_functions', []) @@ -107,9 +105,7 @@ class Saver(QObject): def break_cycles(self): shutil.rmtree(self.tdir, ignore_errors=True) - p = self.parent() - if p is not None: - setattr(p, 'no_gc_%s' % id(self), None) + gc.enable() if self.pool is not None: self.pool.shutdown() self.jobs = self.pool = self.plugboards = self.template_functions = self.collected_data = self.all_book_ids = self.pd = self.db = None # noqa