From: Andrew Dolgov Date: Thu, 2 Mar 2006 17:07:46 +0000 (+0100) Subject: xmlhttp sometimes get stuck in main loop: workaround X-Git-Tag: schema_freeze_for_1.1.4~23 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=c441662f982c4c44be5b8a6d75c5b0cdb29905bf;p=tt-rss.git xmlhttp sometimes get stuck in main loop: workaround --- diff --git a/tt-rss.js b/tt-rss.js index a600c9c3..aa08b74f 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -8,6 +8,7 @@ var current_subtitle = ""; var daemon_enabled = false; var _qfd_deleted_feed = 0; var firsttime_update = true; +var last_refetch = 0; /*@cc_on @*/ /*@if (@_jscript_version >= 5) @@ -102,6 +103,10 @@ function refetch_callback() { if (xmlhttp.readyState == 4) { try { + var date = new Date(); + + last_refetch = date.getTime() / 1000; + if (!xmlhttp.responseXML) { notify("refetch_callback: backend did not return valid XML"); return; @@ -207,11 +212,19 @@ function scheduleFeedUpdate(force) { debug("in scheduleFeedUpdate"); + var date = new Date(); + + if (!xmlhttp_ready(xmlhttp) && last_refetch < date.getTime() / 1000 - 60) { + debug("xmlhttp seems to be stuck, aborting"); + xmlhttp.abort(); + } + if (xmlhttp_ready(xmlhttp)) { xmlhttp.open("GET", query_str, true); xmlhttp.onreadystatechange=refetch_callback; xmlhttp.send(null); } else { + debug("xmlhttp busy"); printLockingError(); } }