URI: 
       tlightning: use queueing lock - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 277e5be229dd9baa7b055200c7f75dfd37197aaf
   DIR parent 0f6566d11e917f7a0da43d9f0cb9370f3c987c3f
  HTML Author: Janus <ysangkok@gmail.com>
       Date:   Mon, 19 Mar 2018 12:14:39 +0100
       
       lightning: use queueing lock
       
       Diffstat:
         M lib/lightning.py                    |      18 +++++-------------
       
       1 file changed, 5 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/lib/lightning.py b/lib/lightning.py
       t@@ -1,4 +1,5 @@
        import functools
       +import datetime
        import sys
        import struct
        import traceback
       t@@ -602,7 +603,7 @@ class LightningRPC:
                try:
                    qitem = self.queue.get(block=False)
                except queue.Empty:
       -            await asyncio.sleep(1)
       +            await asyncio.sleep(5)
                    pass
                else:
                    def lightningRpcNetworkRequestThreadTarget(qitem):
       t@@ -686,31 +687,22 @@ class LightningWorker:
                    NETWORK = self.network()
                    CONFIG = self.config()
        
       -            netAndWalLock.acquire()
       -            synced, local, server = isSynced()
       -            netAndWalLock.release()
       -            if not synced:
       -                await asyncio.sleep(5)
       -                continue
       -            else:
       -                if not wasAlreadyUpToDate:
       -                    print("UP TO DATE FOR THE FIRST TIME")
       -                    print(NETWORK.get_status_value("updated"))
       -                wasAlreadyUpToDate = True
       -
                    writer = None
       +            print("OPENING CONNECTION")
                    try:
                        reader, writer = await asyncio.wait_for(asyncio.open_connection(machine, 1080), 5)
                        writer.write(b"MAGIC")
                        writer.write(privateKeyHash[:6])
                        await asyncio.wait_for(writer.drain(), 5)
                        while asyncio.get_event_loop().is_running():
       +                    print(datetime.datetime.now(), "READING REQUEST")
                            obj = await readJson(reader)
                            if not obj: continue
                            if "id" not in obj:
                                print("Invoice update?", obj)
                                for i in self.subscribers: i(obj)
                                continue
       +                    print(datetime.datetime.now(), "making reply")
                            await asyncio.wait_for(readReqAndReply(obj, writer, netAndWalLock), 10)
                    except:
                        traceback.print_exc()