4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
13 Roo.util.TaskRunner = function(interval){
14 interval = interval || 10;
15 var tasks = [], removeQueue = [];
19 var stopThread = function(){
25 var startThread = function(){
28 id = setInterval(runTasks, interval);
32 var removeTask = function(task){
33 removeQueue.push(task);
39 var runTasks = function(){
40 if(removeQueue.length > 0){
41 for(var i = 0, len = removeQueue.length; i < len; i++){
42 tasks.remove(removeQueue[i]);
50 var now = new Date().getTime();
51 for(var i = 0, len = tasks.length; i < len; ++i){
53 var itime = now - t.taskRunTime;
54 if(t.interval <= itime){
55 var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
57 if(rt === false || t.taskRunCount === t.repeat){
62 if(t.duration && t.duration <= (now - t.taskStartTime)){
70 * @param {Object} task
72 this.start = function(task){
74 task.taskStartTime = new Date().getTime();
76 task.taskRunCount = 0;
81 this.stop = function(task){
86 this.stopAll = function(){
88 for(var i = 0, len = tasks.length; i < len; i++){
98 Roo.TaskMgr = new Roo.util.TaskRunner();