Keep sync state in memory, initialized to false in Desktop app

Prevent deadlock if desktop app killed in middle of syncing
This commit is contained in:
Debanjum Singh Solanky 2023-11-08 17:59:02 -08:00
parent c043eb54ae
commit 8b8bb15866
2 changed files with 6 additions and 5 deletions

View file

@ -67,6 +67,7 @@ const schema = {
}
};
const syncing = false;
var state = {}
const store = new Store({ schema });
@ -111,12 +112,12 @@ 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) {
if (store.get('khojToken') === '' || store.get('hostURL') === '' || syncing === true) {
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
return;
} else {
store.set('syncing', true);
syncing = true;
}
let filesToPush = [];
@ -201,13 +202,13 @@ function pushDataToKhoj (regenerate = false) {
})
.finally(() => {
// Syncing complete
store.set('syncing', false);
syncing = false;
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
});
} else {
// Syncing complete
store.set('syncing', false);
syncing = false;
const win = BrowserWindow.getAllWindows()[0];
if (win) win.webContents.send('update-state', state);
}

View file

@ -61,7 +61,7 @@ api = APIRouter()
logger = logging.getLogger(__name__)
def map_config_to_object(content_source: DbEntry.EntrySource):
def map_config_to_object(content_source: str):
if content_source == DbEntry.EntrySource.GITHUB:
return GithubConfig
if content_source == DbEntry.EntrySource.GITHUB: