kqueue: add a bit of extra paranoia on cancel

Cancellation of GPollFileMonitor is now handled correctly (in the sense
that no further signals will follow) but let's be extra paranoid and
disconnect our handler anyway, for good measure.

https://bugzilla.gnome.org/show_bug.cgi?id=739424
This commit is contained in:
Ryan Lortie 2015-03-26 16:35:06 -04:00 committed by Matthias Clasen
parent a367921d44
commit 9e8f4d4736

View File

@ -186,7 +186,10 @@ g_kqueue_file_monitor_cancel (GFileMonitor *monitor)
kqueue_monitor->sub = NULL; kqueue_monitor->sub = NULL;
} }
else if (kqueue_monitor->fallback) else if (kqueue_monitor->fallback)
{
g_signal_handlers_disconnect_by_func (kqueue_monitor->fallback, _fallback_callback, kqueue_monitor);
g_file_monitor_cancel (kqueue_monitor->fallback); g_file_monitor_cancel (kqueue_monitor->fallback);
}
if (G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel) if (G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel)
(*G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel) (monitor); (*G_FILE_MONITOR_CLASS (g_kqueue_file_monitor_parent_class)->cancel) (monitor);