From 6a86e65f7d4836bfe387d213a6dfaea1d5d162dd Mon Sep 17 00:00:00 2001 From: Ben Kelly Date: Tue, 2 Feb 2016 15:02:59 +0200 Subject: [PATCH] libubus.h: add ubus_auto_shutdown() Add ubus_auto_shutdown function, which ensures any pending uloop_timer is cancelled before calling ubus_shutdown on the context. This avoids a condition where ubus_shutdown() is called during ubus_auto_connect attempting a reconnection. Signed-off-by: Ben Kelly --- libubus.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libubus.h b/libubus.h index 54e7d48..1b219b7 100644 --- a/libubus.h +++ b/libubus.h @@ -240,6 +240,12 @@ void ubus_free(struct ubus_context *ctx); /* call this only for struct ubus_context pointers initialised by ubus_connect_ctx() */ void ubus_shutdown(struct ubus_context *ctx); +static inline void ubus_auto_shutdown(struct ubus_auto_conn *conn) +{ + uloop_timeout_cancel(&conn->timer); + ubus_shutdown(&conn->ctx); +} + const char *ubus_strerror(int error); static inline void ubus_add_uloop(struct ubus_context *ctx) -- 2.11.0