diff --git a/lib/roles/provider.js b/lib/roles/provider.js index ff254d6d..a2ec9c00 100644 --- a/lib/roles/provider.js +++ b/lib/roles/provider.js @@ -104,6 +104,7 @@ module.exports = function(options) { log.info('Found device "%s" (%s)', device.id, device.type) var privateTracker = new events.EventEmitter() + , willStop = false , timer , worker @@ -209,9 +210,11 @@ module.exports = function(options) { switch (device.type) { case 'device': case 'emulator': + willStop = false timer = setTimeout(work, 100) break default: + willStop = true timer = setTimeout(stop, 100) break } @@ -230,16 +233,18 @@ module.exports = function(options) { worker = null }) .catch(procutil.ExitError, function(err) { - log.error( - 'Device worker "%s" died with code %s' - , device.id - , err.code - ) - log.info('Restarting device worker "%s"', device.id) - return Promise.delay(500) - .then(function() { - return work() - }) + if (!willStop) { + log.error( + 'Device worker "%s" died with code %s' + , device.id + , err.code + ) + log.info('Restarting device worker "%s"', device.id) + return Promise.delay(500) + .then(function() { + return work() + }) + } }) }