finish open offer manager tasks before shut down
This commit is contained in:
parent
e2e2963b99
commit
7f3fd0af08
@ -316,20 +316,22 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
|
||||
int size = openOffers.size();
|
||||
log.info("Remove open offers at shutDown. Number of open offers: {}", size);
|
||||
if (offerBookService.isBootstrapped() && size > 0) {
|
||||
UserThread.execute(() -> {
|
||||
openOffers.forEach(openOffer -> offerBookService.removeOfferAtShutDown(openOffer.getOffer().getOfferPayload()));
|
||||
HavenoUtils.submitToThread(() -> { // finish tasks
|
||||
UserThread.execute(() -> {
|
||||
openOffers.forEach(openOffer -> offerBookService.removeOfferAtShutDown(openOffer.getOffer().getOfferPayload()));
|
||||
|
||||
// Force broadcaster to send out immediately, otherwise we could have a 2 sec delay until the
|
||||
// bundled messages sent out.
|
||||
broadcaster.flush();
|
||||
// Force broadcaster to send out immediately, otherwise we could have a 2 sec delay until the
|
||||
// bundled messages sent out.
|
||||
broadcaster.flush();
|
||||
|
||||
if (completeHandler != null) {
|
||||
// For typical number of offers we are tolerant with delay to give enough time to broadcast.
|
||||
// If number of offers is very high we limit to 3 sec. to not delay other shutdown routines.
|
||||
int delay = Math.min(3000, size * 200 + 500);
|
||||
UserThread.runAfter(completeHandler, delay, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
});
|
||||
if (completeHandler != null) {
|
||||
// For typical number of offers we are tolerant with delay to give enough time to broadcast.
|
||||
// If number of offers is very high we limit to 3 sec. to not delay other shutdown routines.
|
||||
int delay = Math.min(3000, size * 200 + 500);
|
||||
UserThread.runAfter(completeHandler, delay, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
});
|
||||
}, THREAD_ID);
|
||||
} else {
|
||||
broadcaster.flush();
|
||||
if (completeHandler != null)
|
||||
|
Loading…
Reference in New Issue
Block a user