Skip to content
Extraits de code Groupes Projets
Vérifiée Valider b37eb5f1 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

Clear all timers on close, to avoid sending things to objects that has already been distroyed

parent 682547aa
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!13Dev kubat: More work done on the instance
......@@ -18,6 +18,10 @@ var tail = require('tail').Tail;
var client; /* Sub process for the express server */
/* Timers functions, needs to be clear on app quit */
var loopIntervals = [];
var loopTimeouts = [];
class Lektor {
constructor() {
this.closed = true;
......@@ -283,65 +287,75 @@ ipcMain.on('add-kara-queue-pos', (event, addparams) => {
ipcMain.on('verify-lektord', (event, arg) => {
lkt.ping().then(sta => {
logger.debug('main', `Status from ping is ${sta}`);
/* Install the clear function before registering all timers */
win.on('close', () => {
logger.info('main', 'Close instance window, ');
loopIntervals.forEach(timer => clearInterval(timer));
loopTimeouts.forEach(timer => clearTimeout(timer));
});
lkt.reloadState();
setTimeout(() => lkt.idleActualisation(), 1000);
setTimeout(() => lkt.statusActualisation(), 1500);
setTimeout(() => db.queueAll().then(karas => win.webContents.send('reload-queue-responce', karas)), 1000);
setInterval(() => {
if (lkt.isQueueUpdated()) {
lkt.setQueueUpdated(false);
db.queueAll().then(karas => win.webContents.send('reload-queue-responce', karas));
}
}, 50);
setInterval(() => {
var newSongTimeData = lkt.getSongTimeData();
if (newSongTimeData.elapsed != songTimeData.elapsed || newSongTimeData.song != songTimeData.song) {
songTimeData = newSongTimeData;
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
counterTime = 0;
} else if (newSongTimeData.state == 'play') {
counterTime++;
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed + counterTime / 20.0,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
} else {
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed + counterTime / 20.0,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
}
}, 50);
setInterval(
() =>
isRunning({ win: 'klkt.exe', mac: 'klkt', linux: 'klkt' }).then(vklkt =>
isRunning({ win: 'lektord.exe', mac: 'lektord', linux: 'lektord' }).then(vlektord =>
win.webContents.send('send-runnings', {
klkt: vklkt,
lektord: vlektord,
})
)
),
1000
);
setInterval(() => {
if (lkt.isStatusUpdated()) {
win.webContents.send('send-state', lkt.getStatus().state);
}
}, 50);
loopTimeouts.concat([
setTimeout(() => lkt.idleActualisation(), 1000),
setTimeout(() => lkt.statusActualisation(), 1500),
setTimeout(() => db.queueAll().then(karas => win.webContents.send('reload-queue-responce', karas)), 1000),
]);
loopIntervals.concat([
setInterval(() => {
if (lkt.isQueueUpdated()) {
lkt.setQueueUpdated(false);
db.queueAll().then(karas => win.webContents.send('reload-queue-responce', karas));
}
}, 50),
setInterval(() => {
var newSongTimeData = lkt.getSongTimeData();
if (newSongTimeData.elapsed != songTimeData.elapsed || newSongTimeData.song != songTimeData.song) {
songTimeData = newSongTimeData;
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
counterTime = 0;
} else if (newSongTimeData.state == 'play') {
counterTime++;
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed + counterTime / 20.0,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
} else {
win.webContents.send('send-song-time-data', {
elapsed: songTimeData.elapsed + counterTime / 20.0,
total: songTimeData.total,
song: songTimeData.song,
state: songTimeData.state,
});
}
}, 50),
setInterval(
() =>
isRunning({ win: 'klkt.exe', mac: 'klkt', linux: 'klkt' }).then(vklkt =>
isRunning({ win: 'lektord.exe', mac: 'lektord', linux: 'lektord' }).then(vlektord =>
win.webContents.send('send-runnings', {
klkt: vklkt,
lektord: vlektord,
})
)
),
1000
),
setInterval(() => {
if (lkt.isStatusUpdated()) {
win.webContents.send('send-state', lkt.getStatus().state);
}
}, 50),
]);
});
});
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter