aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/luop.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/luop.c b/src/luop.c
index 4ef4ea3..02c41d0 100644
--- a/src/luop.c
+++ b/src/luop.c
@@ -108,8 +108,7 @@ struct lu_operation *lu_op_alloc(struct osmo_gsup_server *srv)
luop = talloc_zero(srv, struct lu_operation);
OSMO_ASSERT(luop);
luop->gsup_server = srv;
- luop->timer.cb = lu_op_timer_cb;
- luop->timer.data = luop;
+ osmo_timer_setup(&luop->timer, lu_op_timer_cb, luop);
return luop;
}
@@ -119,6 +118,10 @@ void lu_op_free(struct lu_operation *luop)
/* Only attempt to remove when it was ever added to a list. */
if (luop->list.next)
llist_del(&luop->list);
+
+ /* Delete timer just in case it is still pending. */
+ osmo_timer_del(&luop->timer);
+
talloc_free(luop);
}