summaryrefslogtreecommitdiff
path: root/js/src/Ice/RetryQueue.js
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-09-25 17:07:18 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-09-25 17:07:18 +0200
commit089aed778ab4002336fbada8c4dc4e8b25f33a8c (patch)
tree6188b69af9d8c58e6dbc2079ca6da9d3e5976d1a /js/src/Ice/RetryQueue.js
parentNew fix for (ICE-5583) to always use a custom chain engine (diff)
downloadice-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.js27
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()
{