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();
|
int size = openOffers.size();
|
||||||
log.info("Remove open offers at shutDown. Number of open offers: {}", size);
|
log.info("Remove open offers at shutDown. Number of open offers: {}", size);
|
||||||
if (offerBookService.isBootstrapped() && size > 0) {
|
if (offerBookService.isBootstrapped() && size > 0) {
|
||||||
UserThread.execute(() -> {
|
HavenoUtils.submitToThread(() -> { // finish tasks
|
||||||
openOffers.forEach(openOffer -> offerBookService.removeOfferAtShutDown(openOffer.getOffer().getOfferPayload()));
|
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
|
// Force broadcaster to send out immediately, otherwise we could have a 2 sec delay until the
|
||||||
// bundled messages sent out.
|
// bundled messages sent out.
|
||||||
broadcaster.flush();
|
broadcaster.flush();
|
||||||
|
|
||||||
if (completeHandler != null) {
|
if (completeHandler != null) {
|
||||||
// For typical number of offers we are tolerant with delay to give enough time to broadcast.
|
// 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.
|
// 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);
|
int delay = Math.min(3000, size * 200 + 500);
|
||||||
UserThread.runAfter(completeHandler, delay, TimeUnit.MILLISECONDS);
|
UserThread.runAfter(completeHandler, delay, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}, THREAD_ID);
|
||||||
} else {
|
} else {
|
||||||
broadcaster.flush();
|
broadcaster.flush();
|
||||||
if (completeHandler != null)
|
if (completeHandler != null)
|
||||||
|
Loading…
Reference in New Issue
Block a user