From 9523cab25cbffdae0f94e4fd31847bc54e34640c Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Tue, 1 Jun 2010 11:07:04 -0300 Subject: [PATCH] Fixed bug that was causing the engine to notify the manager of spider closes too early --- scrapy/core/engine.py | 2 +- scrapy/core/manager.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index 11ce4b35a..3491c43c5 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -281,7 +281,7 @@ class ExecutionEngine(object): dfd.addErrback(log.err, "Unhandled error on SpiderManager.close_spider()", spider=spider) dfd.addBoth(lambda _: log.msg("Spider closed (%s)" % reason, spider=spider)) - reactor.callLater(0, self._spider_closed_callback) + dfd.addBoth(lambda _: self._spider_closed_callback(spider)) return dfd def _finish_stopping_engine(self): diff --git a/scrapy/core/manager.py b/scrapy/core/manager.py index 7bac4a3e8..91453544b 100644 --- a/scrapy/core/manager.py +++ b/scrapy/core/manager.py @@ -52,7 +52,7 @@ class ExecutionManager(object): self.engine.crawl(request, spider) @defer.inlineCallbacks - def _spider_closed(self): + def _spider_closed(self, spider=None): if not self.engine.open_spiders: is_finished = yield defer.maybeDeferred(self.queue.is_finished) if is_finished: