From 0bb86febe1d925aa8e7b9948416d73fd4c106f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0pa=C4=8Dek?= <petr.spacek@nic.cz> Date: Tue, 18 Aug 2020 09:42:56 +0200 Subject: [PATCH] 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. --- daemon/bindings/event.c | 3 ++- daemon/bindings/event.rst | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) 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: -- GitLab