From: Petr Špaček Date: Tue, 18 Aug 2020 07:42:56 +0000 (+0200) Subject: lua: clarify event.recurrent() API X-Git-Tag: v5.1.3~7^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0bb86febe1d925aa8e7b9948416d73fd4c106f8c;p=thirdparty%2Fknot-resolver.git lua: clarify event.recurrent() API It was rather confusing: - event.after(0, ...) executed function immediatelly - event.recurrent(0, ...) executed function immediatelly (seemingly worked) but stoped after the first execution, i.e. no recurrence took place. --- diff --git a/daemon/bindings/event.c b/daemon/bindings/event.c index e53f228e9..0c5a6ba97 100644 --- a/daemon/bindings/event.c +++ b/daemon/bindings/event.c @@ -94,7 +94,8 @@ static int event_recurrent(lua_State *L) { /* Check parameters */ int n = lua_gettop(L); - if (n < 2 || !lua_isnumber(L, 1) || !lua_isfunction(L, 2)) + if (n < 2 || !lua_isnumber(L, 1) || lua_tointeger(L, 1) == 0 + || !lua_isfunction(L, 2)) lua_error_p(L, "expected 'recurrent(number interval, function)'"); return event_sched(L, 0, lua_tointeger(L, 1)); diff --git a/daemon/bindings/event.rst b/daemon/bindings/event.rst index 6150f2309..bb8abcdd7 100644 --- a/daemon/bindings/event.rst +++ b/daemon/bindings/event.rst @@ -25,7 +25,7 @@ For example, ``5 * hour`` represents five hours, or 5*60*60*100 milliseconds. :return: event id - Similar to :func:`event.after()`, periodically execute function after ``interval`` passes. + Execute function immediatelly and then periodically after each ``interval``. Example: