connector

This commit is contained in:
4tochka 2019-05-07 19:09:04 +04:00
parent 548347f32b
commit 28f819d15a

View File

@ -99,7 +99,7 @@ class BlockLoader:
self.worker[index] = worker self.worker[index] = worker
self.worker_busy[index] = False self.worker_busy[index] = False
# start message loop # start message loop
self.loop.create_task(self.message_loop(self.worker[index])) self.loop.create_task(self.message_loop(index))
# wait if process crash # wait if process crash
await self.loop.run_in_executor(None, worker.join) await self.loop.run_in_executor(None, worker.join)
del self.worker[index] del self.worker[index]
@ -142,17 +142,18 @@ class BlockLoader:
async def message_loop(self, worker): async def message_loop(self, index):
while True: while True:
msg_type, msg = await self.pipe_get_msg(worker.reader) msg_type, msg = await self.pipe_get_msg(self.worker[index].reader)
if msg_type == b'pipe_read_error': if msg_type == b'pipe_read_error':
if not worker.is_alive(): if not self.worker[index].is_alive():
return return
continue continue
if msg_type == b'result': if msg_type == b'result':
self.log.critical(str(len(msg))) blocks = pickle.loads(msg)
continue for i in blocks:
self.parent.block_preload.set(i, blocks[i])
# def disconnect(self,ip): # def disconnect(self,ip):
@ -208,7 +209,7 @@ class Worker:
blocks = dict() blocks = dict()
for x, y in zip(h, result): for x, y in zip(h, result):
if y["result"] is not None: if y["result"] is not None:
blocks[x] = decode_block_tx(y["result"]) blocks[x] = pickle.dumps(decode_block_tx(y["result"]))
self.pipe_sent_msg(b'result', pickle.dumps(blocks)) self.pipe_sent_msg(b'result', pickle.dumps(blocks))
async def message_loop(self): async def message_loop(self):