diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-09-25 17:07:18 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-09-25 17:07:18 +0200 |
commit | 089aed778ab4002336fbada8c4dc4e8b25f33a8c (patch) | |
tree | 6188b69af9d8c58e6dbc2079ca6da9d3e5976d1a /js/src/Ice/RetryQueue.js | |
parent | New fix for (ICE-5583) to always use a custom chain engine (diff) | |
download | ice-089aed778ab4002336fbada8c4dc4e8b25f33a8c.tar.bz2 ice-089aed778ab4002336fbada8c4dc4e8b25f33a8c.tar.xz ice-089aed778ab4002336fbada8c4dc4e8b25f33a8c.zip |
Fixed again ICE-5687 - adapterDeactivation test warnings
Diffstat (limited to 'js/src/Ice/RetryQueue.js')
-rw-r--r-- | js/src/Ice/RetryQueue.js | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/js/src/Ice/RetryQueue.js b/js/src/Ice/RetryQueue.js index c33a3d9146d..5101dbb87fc 100644 --- a/js/src/Ice/RetryQueue.js +++ b/js/src/Ice/RetryQueue.js @@ -25,16 +25,17 @@ var RetryQueue = Class({ throw new Ice.CommunicatorDestroyedException(); } var task = new RetryTask(this, outAsync); - this._instance.timer().schedule(function() - { - task.run(); - }, interval); + task.token = this._instance.timer().schedule(function() + { + task.run(); + }, interval); this._requests.push(task); }, destroy: function() { for(var i = 0; i < this._requests.length; ++i) { + this._instance.timer().cancel(this._requests[i].token); this._requests[i].destroy(); } this._requests = []; @@ -46,9 +47,7 @@ var RetryQueue = Class({ if(idx >= 0) { this._requests.splice(idx, 1); - return true; } - return false; } }); Ice.RetryQueue = RetryQueue; @@ -61,17 +60,15 @@ var RetryTask = Class({ }, run: function() { - if(this.queue.remove(this)) + try { - try - { - this.outAsync.__invoke(); - } - catch(ex) - { - this.outAsync.__invokeException(ex); - } + this.outAsync.__invoke(); } + catch(ex) + { + this.outAsync.__invokeException(ex); + } + this.queue.remove(this); }, destroy: function() { |