diff --git a/server/block_processor.py b/server/block_processor.py index fbe2c57..0ad73a9 100644 --- a/server/block_processor.py +++ b/server/block_processor.py @@ -201,6 +201,7 @@ class BlockProcessor(server.db.DB): self.first_caught_up() self.flush(True) + self.logger.info('shut down complete') def shutdown(self): '''Call to shut down the block processor.''' @@ -213,11 +214,16 @@ class BlockProcessor(server.db.DB): if self.height == -1: blocks[0] = blocks[0][:self.coin.HEADER_LEN] + bytes(1) - touched = set() - try: + def do_it(): for block in blocks: + if self._shutdown: + break self.advance_block(block, touched) - await asyncio.sleep(0) # Yield + + touched = set() + loop = asyncio.get_event_loop() + try: + await loop.run_in_executor(None, do_it) except ChainReorg: await self.handle_chain_reorg(touched)