Switch to bluebird and simplify gracefullyExit().

This commit is contained in:
Simo Kinnunen
2014-01-08 20:09:45 +09:00
parent 3826705ccd
commit b40dc363b5

View File

@@ -2,7 +2,7 @@ var path = require('path')
var fork = require('child_process').fork
var adb = require('adbkit')
var Q = require('q')
var Promise = require('bluebird')
var log = require('./util/logger').createLogger('provider')
var client = adb.createClient()
@@ -97,7 +97,7 @@ function maybeDisconnect(device) {
}
function tryKillWorker(id) {
var deferred = Q.defer(),
var deferred = Promise.defer(),
worker = workers[id]
function onExit() {
@@ -115,7 +115,7 @@ function tryKillWorker(id) {
function forceKillWorker(id) {
log.warn('Force killing worker of device "%s"', id)
var deferred = Q.defer()
var deferred = Promise.defer()
, worker = workers[id]
function onExit() {
@@ -143,15 +143,11 @@ function gracefullyKillWorker(id) {
function gracefullyExit() {
log.info('Stopping all workers')
Q.spawn(function* foo() {
var ops = []
for (var id in workers) {
ops.push(gracefullyKillWorker(id))
}
yield Q.all(ops)
log.info('All cleaned up')
process.exit(0)
})
Promise.all(Object.keys(workers).map(gracefullyKillWorker))
.done(function() {
log.info('All cleaned up')
process.exit(0)
})
}
process.on('SIGINT', function(e) {