aboutsummaryrefslogtreecommitdiffstats
path: root/devel/gamin
diff options
context:
space:
mode:
authorJean-Yves Lefort <jylefort@FreeBSD.org>2006-02-07 01:17:15 +0800
committerJean-Yves Lefort <jylefort@FreeBSD.org>2006-02-07 01:17:15 +0800
commit7d2904197abc0eeae0babd45cd0a66057532747c (patch)
tree85e5eb848b79f679526e6cefa50b517f9cd358de /devel/gamin
parent49065dd7a90271b9e1ab2875216f66e31f34f86a (diff)
downloadfreebsd-ports-gnome-7d2904197abc0eeae0babd45cd0a66057532747c.tar.gz
freebsd-ports-gnome-7d2904197abc0eeae0babd45cd0a66057532747c.tar.zst
freebsd-ports-gnome-7d2904197abc0eeae0babd45cd0a66057532747c.zip
Open monitored files with the O_NONBLOCK flag: prevents gam_server
from locking up when a file for which open() blocks forever is monitored.
Diffstat (limited to 'devel/gamin')
-rw-r--r--devel/gamin/Makefile2
-rw-r--r--devel/gamin/files/patch-server_gam_kqueue.c20
2 files changed, 21 insertions, 1 deletions
diff --git a/devel/gamin/Makefile b/devel/gamin/Makefile
index 6ec485635524..091be3877e0c 100644
--- a/devel/gamin/Makefile
+++ b/devel/gamin/Makefile
@@ -7,7 +7,7 @@
PORTNAME= gamin
PORTVERSION= 0.1.5
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES?= devel
MASTER_SITES= http://www.gnome.org/~veillard/gamin/sources/
diff --git a/devel/gamin/files/patch-server_gam_kqueue.c b/devel/gamin/files/patch-server_gam_kqueue.c
new file mode 100644
index 000000000000..3531c6d6614d
--- /dev/null
+++ b/devel/gamin/files/patch-server_gam_kqueue.c
@@ -0,0 +1,20 @@
+--- server/gam_kqueue.c.orig Mon Feb 6 18:00:49 2006
++++ server/gam_kqueue.c Mon Feb 6 18:01:25 2006
+@@ -31,7 +31,7 @@
+ * - kqueue needs to be moved out the UFS code.
+ *
+ * Copyright (C) 2005 Joe Marcus Clarke <marcus@FreeBSD.org>
+- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@FreeBSD.org>
++ * Copyright (C) 2005, 2006 Jean-Yves Lefort <jylefort@FreeBSD.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+@@ -515,7 +515,7 @@
+ return FALSE;
+ }
+
+- mon->fd = open(mon->pathname, O_RDONLY | O_NOFOLLOW);
++ mon->fd = open(mon->pathname, O_RDONLY | O_NONBLOCK | O_NOFOLLOW);
+ if (mon->fd < 0)
+ {
+ GAM_DEBUG(DEBUG_INFO, "cannot open %s (%s), falling back to poll\n", mon->pathname, g_strerror(errno));