add ob_main_loop_timeout_remove_data.

make the timeout remove functions remove *all* timeouts that match
This commit is contained in:
Dana Jansens 2003-09-03 20:34:14 +00:00
parent aae074a11a
commit 1df4e32760
2 changed files with 17 additions and 3 deletions

View file

@ -525,10 +525,21 @@ void ob_main_loop_timeout_remove(ObMainLoop *loop,
for (it = loop->timers; it; it = g_slist_next(it)) { for (it = loop->timers; it; it = g_slist_next(it)) {
ObMainLoopTimer *t = it->data; 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; t->del_me = TRUE;
break;
}
} }
} }

View file

@ -45,6 +45,9 @@ void ob_main_loop_timeout_add(ObMainLoop *loop,
GDestroyNotify notify); GDestroyNotify notify);
void ob_main_loop_timeout_remove(ObMainLoop *loop, void ob_main_loop_timeout_remove(ObMainLoop *loop,
GSourceFunc handler); 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_run(ObMainLoop *loop);
void ob_main_loop_exit(ObMainLoop *loop); void ob_main_loop_exit(ObMainLoop *loop);