lua-timer: delete timer if callback is set to null/nil.
authorKrisztian Litkey <krisztian.litkey@intel.com>
Thu, 18 Sep 2014 08:15:22 +0000 (11:15 +0300)
committerKrisztian Litkey <krisztian.litkey@intel.com>
Thu, 2 Oct 2014 07:00:07 +0000 (10:00 +0300)
src/core/lua-bindings/lua-timer.c

index beeb1da..b158df4 100644 (file)
@@ -145,7 +145,7 @@ static void timer_lua_changed(void *data, lua_State *L, int member)
         break;
 
     case TIMER_MEMBER_CALLBACK:
-        if (t->callback == LUA_NOREF) {
+        if (t->callback == LUA_NOREF || t->callback == LUA_REFNIL) {
             mrp_del_timer(t->t);
             t->t = NULL;
         }
@@ -193,7 +193,7 @@ static int timer_lua_create(lua_State *L)
                           "got %d", narg);
     }
 
-    if (t->callback != LUA_NOREF && t->t == NULL) {
+    if (t->callback != LUA_NOREF && t->callback != LUA_REFNIL && t->t == NULL) {
         t->t = mrp_add_timer(t->ctx->ml, t->msecs, timer_lua_cb, t);
 
         if (t->t == NULL) {