JavaScript is single-threaded, so there is no need for protection against re-entrancy via inProgress variable. In particular calls to setInterval handler are stacked if handler doesn't finish before new interrupt (before new interval). The same happens with events - they are (hopefully) stacked if even handler didn't finish work. Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- Remove and simplify code. gitweb/static/js/blame_incremental.js | 21 +++------------------ 1 files changed, 3 insertions(+), 18 deletions(-) diff --git a/gitweb/static/js/blame_incremental.js b/gitweb/static/js/blame_incremental.js index 676da6b..4841805 100644 --- a/gitweb/static/js/blame_incremental.js +++ b/gitweb/static/js/blame_incremental.js @@ -420,8 +420,6 @@ function handleLine(commit, group) { // ---------------------------------------------------------------------- -var inProgress = false; // are we processing response - /**#@+ * @constant */ @@ -536,7 +534,7 @@ function processData(unprocessed, nextReadPos) { * * @param {XMLHttpRequest} xhr: XMLHttpRequest object * - * @globals pollTimer, commits, inProgress + * @globals pollTimer, commits */ function handleError(xhr) { errorInfo('Server error: ' + @@ -544,8 +542,6 @@ function handleError(xhr) { clearInterval(pollTimer); commits = {}; // free memory - - inProgress = false; } /** @@ -553,7 +549,7 @@ function handleError(xhr) { * * @param {XMLHttpRequest} xhr: XMLHttpRequest object (unused) * - * @globals pollTimer, commits, inProgress + * @globals pollTimer, commits */ function responseLoaded(xhr) { clearInterval(pollTimer); @@ -561,15 +557,13 @@ function responseLoaded(xhr) { fixColorsAndGroups(); writeTimeInterval(); commits = {}; // free memory - - inProgress = false; } /** * handler for XMLHttpRequest onreadystatechange event * @see startBlame * - * @globals xhr, inProgress + * @globals xhr */ function handleResponse() { @@ -609,13 +603,6 @@ function handleResponse() { return; } - // in case we were called before finished processing - if (inProgress) { - return; - } else { - inProgress = true; - } - // extract new whole (complete) lines, and process them while (xhr.prevDataLength !== xhr.responseText.length) { if (xhr.readyState === 4 && @@ -633,8 +620,6 @@ function handleResponse() { xhr.prevDataLength === xhr.responseText.length) { responseLoaded(xhr); } - - inProgress = false; } // ============================================================ -- 1.7.5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html