libubus: fix deferring invoke processing for non-uloop usage
[project/ubus.git] / libubus-req.c
index 7378a92405fe3d757536195351ecf2a22d519b6d..f24f033d9d65da38ebbd5dac53f2cce4a16b4df3 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 (!registered)
+       if (!registered) {
                uloop_fd_delete(&ctx->sock);
 
+               if (ctx->stack_depth)
+                       ctx->pending_timer.cb(&ctx->pending_timer);
+       }
+
        return status;
 }