Prevent Desktop app triggering multiple simultaneous syncs to server

Lock syncing to server if a sync is already in progress.

While the sync save button gets disabled while sync is in progress,
the background sync job can still trigger a sync in parallel. This
sync lock prevents that
This commit is contained in:
Debanjum Singh Solanky 2023-11-07 03:17:42 -08:00
parent 404d47f1a1
commit 779fa531a5

View file

@ -110,6 +110,15 @@ function filenameToMimeType (filename) {
}
function pushDataToKhoj (regenerate = false) {
// Don't sync if token or hostURL is not set or if already syncing
if (store.get('khojToken') === '' || store.get('hostURL') === '' || store.get('syncing') === true) {
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
return;
} else {
store.set('syncing', true);
}
let filesToPush = [];
const files = store.get('files') || [];
const folders = store.get('folders') || [];
@ -192,11 +201,13 @@ function pushDataToKhoj (regenerate = false) {
})
.finally(() => {
// Syncing complete
store.set('syncing', false);
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
});
} else {
// Syncing complete
store.set('syncing', false);
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
}