summaryrefslogtreecommitdiff
path: root/devel/gio-fam-backend/files/patch-fam
diff options
context:
space:
mode:
Diffstat (limited to 'devel/gio-fam-backend/files/patch-fam')
-rw-r--r--devel/gio-fam-backend/files/patch-fam52
1 files changed, 52 insertions, 0 deletions
diff --git a/devel/gio-fam-backend/files/patch-fam b/devel/gio-fam-backend/files/patch-fam
new file mode 100644
index 000000000000..a3b5fe4aa716
--- /dev/null
+++ b/devel/gio-fam-backend/files/patch-fam
@@ -0,0 +1,52 @@
+--- gio/fam/fam-helper.h.orig 2008-03-10 13:50:12.000000000 -0400
++++ gio/fam/fam-helper.h 2008-03-10 13:50:29.000000000 -0400
+@@ -28,6 +28,7 @@
+ typedef struct _fam_sub fam_sub;
+
+ gboolean _fam_sub_startup (void);
++void _fam_sub_shutdown (void);
+ fam_sub* _fam_sub_add (const gchar* pathname,
+ gboolean directory,
+ gpointer user_data);
+--- gio/fam/fam-helper.c.orig 2008-03-10 20:31:58.000000000 -0400
++++ gio/fam/fam-helper.c 2008-03-10 23:06:32.000000000 -0400
+@@ -181,6 +181,22 @@ _fam_sub_startup (void)
+ return TRUE;
+ }
+
++void
++_fam_sub_shutdown (void)
++{
++ G_LOCK (fam_connection);
++
++ if (fam_connection != NULL) {
++ FAMClose (fam_connection);
++ g_free (fam_connection);
++ g_source_remove (fam_watch_id);
++ fam_watch_id = 0;
++ fam_connection = NULL;
++ }
++
++ G_UNLOCK (fam_connection);
++}
++
+ fam_sub*
+ _fam_sub_add (const gchar* pathname,
+ gboolean directory,
+--- gio/fam/fam-module.c.orig 2008-03-12 13:38:54.000000000 -0400
++++ gio/fam/fam-module.c 2008-03-12 13:39:31.000000000 -0400
+@@ -26,6 +26,7 @@
+ #include "giomodule.h"
+ #include "gfamdirectorymonitor.h"
+ #include "gfamfilemonitor.h"
++#include "fam-helper.h"
+
+ void
+ g_io_module_load (GIOModule *module)
+@@ -37,5 +38,6 @@ g_io_module_load (GIOModule *module)
+ void
+ g_io_module_unload (GIOModule *module)
+ {
++ _fam_sub_shutdown ();
+ }
+