Add a way to wait and stop pending tasks

This commit is contained in:
Johannes Zellner
2016-01-29 16:25:31 +01:00
parent b718c8d044
commit 05245f5fc7
+22 -1
View File
@@ -4,7 +4,10 @@ exports = module.exports = {
initialize: initialize,
uninitialize: uninitialize,
restartAppTask: restartAppTask
restartAppTask: restartAppTask,
stopPendingTasks: stopPendingTasks,
waitForPendingTasks: waitForPendingTasks
};
var appdb = require('./appdb.js'),
@@ -47,6 +50,24 @@ function uninitialize(callback) {
async.eachSeries(Object.keys(gActiveTasks), stopAppTask, callback);
}
function stopPendingTasks(callback) {
assert.strictEqual(typeof callback, 'function');
gPendingTasks = [];
async.eachSeries(Object.keys(gActiveTasks), stopAppTask, callback);
}
function waitForPendingTasks(callback) {
assert.strictEqual(typeof callback, 'function');
function checkTasks() {
if (Object.keys(gActiveTasks).length === 0 && gPendingTasks.length === 0) return callback();
setTimeout(checkTasks, 1000);
}
checkTasks();
}
// resume app installs and uninstalls
function resumeTasks(callback) {