sync main wallet outside lock on connection changed

This commit is contained in:
woodser 2023-12-28 08:08:03 -05:00
parent bc4d8fc8c2
commit e160499d30

View file

@ -300,6 +300,10 @@ public class XmrWalletService {
} }
} }
private MoneroSyncResult syncWallet() {
return syncWallet(wallet);
}
public void saveWallet(MoneroWallet wallet, boolean backup) { public void saveWallet(MoneroWallet wallet, boolean backup) {
wallet.save(); wallet.save();
if (backup) backupWallet(wallet.getPath()); if (backup) backupWallet(wallet.getPath());
@ -791,7 +795,7 @@ public class XmrWalletService {
if (wallet.getHeight() < xmrConnectionService.getTargetHeight()) updateSyncProgress(); if (wallet.getHeight() < xmrConnectionService.getTargetHeight()) updateSyncProgress();
else { else {
syncLooper.stop(); syncLooper.stop();
wallet.sync(); // necessary to fully sync syncWallet(); // necessary to fully sync
wasWalletSynced = true; wasWalletSynced = true;
updateSyncProgress(); updateSyncProgress();
latch.countDown(); latch.countDown();
@ -940,13 +944,11 @@ public class XmrWalletService {
if (connection != null) { if (connection != null) {
wallet.getDaemonConnection().setPrintStackTrace(PRINT_STACK_TRACE); wallet.getDaemonConnection().setPrintStackTrace(PRINT_STACK_TRACE);
HavenoUtils.submitToPool(() -> { HavenoUtils.submitToPool(() -> {
synchronized (walletLock) { try {
try { if (Boolean.TRUE.equals(connection.isConnected())) syncWallet();
if (Boolean.TRUE.equals(connection.isConnected())) wallet.sync(); wallet.startSyncing(xmrConnectionService.getRefreshPeriodMs());
wallet.startSyncing(xmrConnectionService.getRefreshPeriodMs()); } catch (Exception e) {
} catch (Exception e) { log.warn("Failed to sync main wallet after setting daemon connection: " + e.getMessage());
log.warn("Failed to sync main wallet after setting daemon connection: " + e.getMessage());
}
} }
}); });
} }