From 1266b64884b8fbb0df139271e07774e06a698a60 Mon Sep 17 00:00:00 2001 From: daniel@ruoso.com Date: Sun, 25 Oct 2009 12:45:19 +0000 Subject: [PATCH] evita race condition ; --- Fila-Web/root/header.tt | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Fila-Web/root/header.tt b/Fila-Web/root/header.tt index 5f726bc..9f936b0 100644 --- a/Fila-Web/root/header.tt +++ b/Fila-Web/root/header.tt @@ -26,13 +26,14 @@ var page_loaded = 0; var waiting_for = ''; var timeout = 0; var timeout_callback; +var timeout_key; function disconnected_so_move_away() { if (page_loaded) { window.location='about:blank'; } } -function check_timeout() { +function check_timeout(tk) { if (timeout == 0) { if (waiting_for) { timeout_callback(); @@ -42,16 +43,27 @@ function check_timeout() { $('aviso_timeout').replace('
' + timeout + ' segundos para ' + waiting_for +'
'); - window.setTimeout(function() { check_timeout() }, 1000); + window.setTimeout(function() { + if (tk == timeout_key) { check_timeout(tk) } + }, 1000); timeout--; } } function set_timeout(tempo, motivo, callback) { - waiting_for = motivo; - timeout = tempo; - timeout_callback = callback; - check_timeout(); + if (motivo && waiting_for == motivo) { + return + } else if (motivo && waiting_for) { + waiting_for = motivo; + timeout = tempo; + timeout_callback = callback; + } else { + waiting_for = motivo; + timeout = tempo; + timeout_callback = callback; + timeout_key = Math.random(); + check_timeout(timeout_key); + } } -- libgit2 0.21.2