Config: D-Bus: Don't leak timers
TimerCancel doesn't free the timer: you need TimerFree for that.
This commit is contained in:
parent
ae869fc766
commit
f44fd3f9e4
|
@ -76,7 +76,7 @@ teardown(void)
|
||||||
struct config_dbus_core_hook *hook;
|
struct config_dbus_core_hook *hook;
|
||||||
|
|
||||||
if (bus_info.timer) {
|
if (bus_info.timer) {
|
||||||
TimerCancel(bus_info.timer);
|
TimerFree(bus_info.timer);
|
||||||
bus_info.timer = NULL;
|
bus_info.timer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +116,8 @@ message_filter(DBusConnection *connection, DBusMessage *message, void *data)
|
||||||
bus_info.connection = NULL;
|
bus_info.connection = NULL;
|
||||||
teardown();
|
teardown();
|
||||||
|
|
||||||
|
if (bus_info.timer)
|
||||||
|
TimerFree(bus_info.timer);
|
||||||
bus_info.timer = TimerSet(NULL, 0, 1, reconnect_timer, NULL);
|
bus_info.timer = TimerSet(NULL, 0, 1, reconnect_timer, NULL);
|
||||||
|
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
|
@ -186,6 +188,7 @@ static CARD32
|
||||||
reconnect_timer(OsTimerPtr timer, CARD32 time, pointer arg)
|
reconnect_timer(OsTimerPtr timer, CARD32 time, pointer arg)
|
||||||
{
|
{
|
||||||
if (connect_to_bus()) {
|
if (connect_to_bus()) {
|
||||||
|
TimerFree(bus_info.timer);
|
||||||
bus_info.timer = NULL;
|
bus_info.timer = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user