@@ -0,0 +1,1622 @@
+package org.bitcoinj.quorums;%0A%0Aimport org.bitcoinj.core.Context;%0Aimport org.slf4j.Logger;%0Aimport org.slf4j.LoggerFactory;%0A%0A/**%0A * Created by hashengineering on 5/1/19.%0A */%0Apublic class LLMQBackgroundThread extends Thread %7B%0A    private static final Logger log = LoggerFactory.getLogger(LLMQBackgroundThread.class);%0A%0A    Context context;%0A    public LLMQBackgroundThread(Context context) %7B%0A        this.context = context;%0A    %7D%0A%0A    int debugTimer = 0;%0A%0A    @Override%0A    public void run() %7B%0A        Context.propagate(context);%0A        try %7B%0A            context.signingManager.addRecoveredSignatureListener(context.instantSendManager);%0A            context.signingManager.addRecoveredSignatureListener(context.chainLockHandler);%0A            while (!isInterrupted()) %7B%0A                boolean didWork = false;%0A%0A                didWork %7C= context.instantSendManager.processPendingInstantSendLocks();%0A%0A                didWork %7C= context.signingManager.processPendingRecoveredSigs();%0A%0A                context.signingManager.cleanup();%0A%0A%0A%0A                if (!didWork) %7B%0A                    Thread.sleep(100);%0A                %7D else %7B%0A                    debugTimer++;%0A                    if(debugTimer %25 100 == 0) %7B%0A                        log.info(context.instantSendManager.toString());%0A                    %7D%0A                %7D%0A            %7D%0A        %7D catch (InterruptedException x) %7B%0A            //let the thread stop%0A            context.signingManager.removeRecoveredSignatureListener(context.instantSendManager);%0A            context.signingManager.removeRecoveredSignatureListener(context.chainLockHandler);%0A        %7D%0A    %7D%0A%7D%0A

Add LLMQBackgroundThread that handles InstantSendLocks and RecoveredSigs