libubus: fix deferring invoke processing for non-uloop usage
[project/ubus.git] / libubus-req.c
index 7378a92..f24f033 100644 (file)
@@ -171,9 +171,13 @@ int ubus_complete_request(struct ubus_context *ctx, struct ubus_request *req,
        if (req->complete_cb)
                req->complete_cb(req, status);
 
        if (req->complete_cb)
                req->complete_cb(req, status);
 
-       if (!registered)
+       if (!registered) {
                uloop_fd_delete(&ctx->sock);
 
                uloop_fd_delete(&ctx->sock);
 
+               if (ctx->stack_depth)
+                       ctx->pending_timer.cb(&ctx->pending_timer);
+       }
+
        return status;
 }
 
        return status;
 }