summaryrefslogtreecommitdiff
path: root/devel/dbus
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2005-07-03 05:47:03 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2005-07-03 05:47:03 +0000
commit9ec70a90862db991740e96775e4fa6afe0c00116 (patch)
treeea5ec67f6eea429dfff195dc5c615a2b84a9a881 /devel/dbus
parent-Update to 0.9.3, see more detail: http://changelog.wesnoth.org/ (diff)
Be sure to unref the kqueue watch along with marking the kqueue file
descriptor as invalid.
Notes
Notes: svn path=/head/; revision=138370
Diffstat (limited to 'devel/dbus')
-rw-r--r--devel/dbus/Makefile2
-rw-r--r--devel/dbus/files/patch-bus_dir-watch.c17
2 files changed, 14 insertions, 5 deletions
diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile
index ff195b042e6d..100433763e9f 100644
--- a/devel/dbus/Makefile
+++ b/devel/dbus/Makefile
@@ -7,7 +7,7 @@
PORTNAME= dbus
PORTVERSION= 0.34
-PORTREVISION?= 1
+PORTREVISION?= 2
CATEGORIES?= devel gnome
MASTER_SITES= http://dbus.freedesktop.org/releases/
diff --git a/devel/dbus/files/patch-bus_dir-watch.c b/devel/dbus/files/patch-bus_dir-watch.c
index 9830112c43fa..0673a8caa8f3 100644
--- a/devel/dbus/files/patch-bus_dir-watch.c
+++ b/devel/dbus/files/patch-bus_dir-watch.c
@@ -1,5 +1,5 @@
--- bus/dir-watch.c.orig Tue Jun 14 22:31:38 2005
-+++ bus/dir-watch.c Sat Jul 2 15:29:35 2005
++++ bus/dir-watch.c Sun Jul 3 01:40:21 2005
@@ -28,17 +28,25 @@
#include <stdlib.h>
#include <unistd.h>
@@ -28,7 +28,7 @@
/* use a static array to avoid handling OOM */
static int fds[MAX_DIRS_TO_WATCH];
static int num_fds = 0;
-@@ -92,6 +100,132 @@ bus_drop_all_directory_watches (void)
+@@ -92,6 +100,141 @@ bus_drop_all_directory_watches (void)
}
}
@@ -40,6 +40,7 @@
+static int kq = -1;
+static int fds[MAX_DIRS_TO_WATCH];
+static int num_fds = 0;
++static DBusWatch *watch = NULL;
+
+static dbus_bool_t
+_handle_kqueue_watch (DBusWatch *watch, unsigned int flags, void *data)
@@ -60,6 +61,10 @@
+ else if (res < 0 && errno == EBADF)
+ {
+ kq = -1;
++ if (watch != NULL)
++ {
++ _dbus_watch_unref (watch);
++ }
+ pid = getpid ();
+ _dbus_verbose ("Sending SIGHUP signal since kqueue has been closed\n");
+ (void) kill (pid, SIGHUP);
@@ -82,9 +87,8 @@
+
+ _dbus_assert (dir != NULL);
+
-+ if (kq == -1)
++ if (kq < 0)
+ {
-+ DBusWatch *watch;
+ DBusLoop *loop;
+
+ kq = kqueue ();
@@ -102,6 +106,8 @@
+ if (watch == NULL)
+ {
+ _dbus_warn ("Unable to create kqueue watch\n");
++ close (kq);
++ kq = -1;
+ goto out;
+ }
+
@@ -109,6 +115,9 @@
+ NULL, NULL))
+ {
+ _dbus_warn ("Unable to add reload watch to main loop");
++ close (kq);
++ kq = -1;
++ _dbus_watch_unref (watch);
+ goto out;
+ }
+ }