add ob_main_loop_timeout_remove_data.
make the timeout remove functions remove *all* timeouts that match
This commit is contained in:
parent
aae074a11a
commit
1df4e32760
2 changed files with 17 additions and 3 deletions
|
@ -525,10 +525,21 @@ void ob_main_loop_timeout_remove(ObMainLoop *loop,
|
|||
|
||||
for (it = loop->timers; it; it = g_slist_next(it)) {
|
||||
ObMainLoopTimer *t = it->data;
|
||||
if (t->func == handler) {
|
||||
if (t->func == handler)
|
||||
t->del_me = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void ob_main_loop_timeout_remove_data(ObMainLoop *loop,
|
||||
GSourceFunc handler,
|
||||
gpointer data)
|
||||
{
|
||||
GSList *it;
|
||||
|
||||
for (it = loop->timers; it; it = g_slist_next(it)) {
|
||||
ObMainLoopTimer *t = it->data;
|
||||
if (t->func == handler && t->data == data)
|
||||
t->del_me = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,9 @@ void ob_main_loop_timeout_add(ObMainLoop *loop,
|
|||
GDestroyNotify notify);
|
||||
void ob_main_loop_timeout_remove(ObMainLoop *loop,
|
||||
GSourceFunc handler);
|
||||
void ob_main_loop_timeout_remove_data(ObMainLoop *loop,
|
||||
GSourceFunc handler,
|
||||
gpointer data);
|
||||
|
||||
void ob_main_loop_run(ObMainLoop *loop);
|
||||
void ob_main_loop_exit(ObMainLoop *loop);
|
||||
|
|
Loading…
Reference in a new issue