From b102e9561389fb7e278c5008125b15844ff73fd0 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Wed, 20 Mar 2019 19:41:34 -0700 Subject: [PATCH] Restore fake abort in thread watcher if real abort not available or doesn't go through; needed to retry. --- src/Monitoring/ThreadWatcher.coffee | 33 +++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 227d9368b..513eaffcf 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -175,27 +175,34 @@ ThreadWatcher = ThreadWatcher.status.textContent = '...' $.addClass ThreadWatcher.refreshButton, 'fa-spin' ajax = if (siteID is Site.hostname) then $.ajax else CrossOrigin.ajax + onloadend = -> + return if @finished + @finished = true + ThreadWatcher.fetched++ + if ThreadWatcher.fetched is ThreadWatcher.requests.length + ThreadWatcher.clearRequests() + else + ThreadWatcher.status.textContent = "#{Math.round(ThreadWatcher.fetched / ThreadWatcher.requests.length * 100)}%" + cb.apply @, args req = ajax url, - onloadend: -> - @finished = true - ThreadWatcher.fetched++ - if ThreadWatcher.fetched is ThreadWatcher.requests.length - ThreadWatcher.requests = [] - ThreadWatcher.fetched = 0 - ThreadWatcher.status.textContent = '' - $.rmClass ThreadWatcher.refreshButton, 'fa-spin' - else - ThreadWatcher.status.textContent = "#{Math.round(ThreadWatcher.fetched / ThreadWatcher.requests.length * 100)}%" - cb.apply @, args + onloadend: onloadend timeout: $.MINUTE , whenModified: if force then false else 'ThreadWatcher' ThreadWatcher.requests.push req + clearRequests: -> + ThreadWatcher.requests = [] + ThreadWatcher.fetched = 0 + ThreadWatcher.status.textContent = '' + $.rmClass ThreadWatcher.refreshButton, 'fa-spin' + abort: -> for req in ThreadWatcher.requests when !req.finished - req.abort?() - return + req.finished = true + try + req.abort?() + ThreadWatcher.clearRequests() fetchAuto: -> clearTimeout ThreadWatcher.timeout