lightning: less junk on console, quicker shutdown

This commit is contained in:
Janus 2018-03-15 18:43:10 +01:00
parent 155f62f7d4
commit f5e3da3e56
3 changed files with 10 additions and 9 deletions

View File

@ -1914,7 +1914,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
console.updateNamespace({'wallet' : self.wallet,
'network' : self.network,
'plugins' : self.gui_object.plugins,
'lightning' : self.gui_object.lightning,
'l' : self.gui_object.lightning,
'window': self})
console.updateNamespace({'util' : util, 'bitcoin':bitcoin})

View File

@ -598,7 +598,7 @@ class LightningRPC:
self.subscribers = []
# overridden
async def run(self, netAndWalLock):
while True:
while asyncio.get_event_loop().is_running():
try:
qitem = self.queue.get(block=False)
except queue.Empty:
@ -681,7 +681,7 @@ class LightningWorker:
wasAlreadyUpToDate = False
while True:
while asyncio.get_event_loop().is_running():
WALLET = self.wallet()
NETWORK = self.network()
CONFIG = self.config()
@ -704,7 +704,7 @@ class LightningWorker:
writer.write(b"MAGIC")
writer.write(privateKeyHash[:6])
await asyncio.wait_for(writer.drain(), 5)
while True:
while asyncio.get_event_loop().is_running():
obj = await readJson(reader)
if not obj: continue
if "id" not in obj:
@ -721,13 +721,12 @@ class LightningWorker:
async def readJson(reader):
data = b""
while True:
while asyncio.get_event_loop().is_running():
newlines = sum(1 if x == b"\n"[0] else 0 for x in data)
if newlines > 1: print("Too many newlines in Electrum/lightning.py!", data)
try:
return json.loads(data)
except ValueError:
if data != b"": print("parse failed, data has", data)
try:
data += await asyncio.wait_for(reader.read(1), 1)
except TimeoutError:

View File

@ -1052,9 +1052,11 @@ class Network(util.DaemonThread):
networkAndWalletLock.release()
networkAndWalletLock.acquire()
loop.stop()
while loop.is_running():
pass
loop.close()
if loop.is_running(): time.sleep(0.1)
try:
loop.close()
except:
pass
self.stop_network()
self.on_stop()