kqueue: Only fallback to polling on /media and /run/media

The check in _ke_is_excluded, which causes GKqueueFileMonitor to
fallback to GPollFileMonitor when it returns TRUE, was made to prevent
file monitor from blocking unmount of removable drives on systems not
supporting O_EVTONLY flag in open. However, since g_mount_can_unmount
always returns TRUE on Unix-like platforms, the check always returns
TRUE on non-standard mount points, which is very likely to cause all
programs on the desktop to use the polling fallback if GNOME is
installed in a different prefix for development. This makes the desktop
sluggish and results in bad developer experience on *BSD.
This commit is contained in:
Ting-Wei Lan 2018-06-03 12:15:36 +08:00
parent 70e4ca0340
commit 41259ac173

View File

@ -121,7 +121,7 @@ _ke_is_excluded (const char *full_path)
g_object_unref (f); g_object_unref (f);
} }
if ((mount != NULL && (g_mount_can_unmount (mount))) || g_str_has_prefix (full_path, "/mnt/")) if (mount != NULL && (g_str_has_prefix (full_path, "/media/") || g_str_has_prefix (full_path, "/run/media/")))
{ {
g_warning ("Excluding %s from kernel notification, falling back to poll", full_path); g_warning ("Excluding %s from kernel notification, falling back to poll", full_path);
if (mount) if (mount)