--- a/util/timer.lua Wed Dec 16 00:11:54 2009 +0500 +++ b/util/timer.lua Thu Dec 17 16:52:39 2009 +0000 @@ -55,10 +55,10 @@ else local EVENT_LEAVE = (event.core and event.core.LEAVE) or -1; function _add_task(delay, func) - event_base:addevent(nil, event.EV_TIMEOUT, function () + event_base:addevent(nil, 0, function () local ret = func(); if ret then - _add_task(ret, func); + return 0, ret; else return EVENT_LEAVE; end