summaryrefslogtreecommitdiff
path: root/devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c')
-rw-r--r--devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c131
1 files changed, 0 insertions, 131 deletions
diff --git a/devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c b/devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c
deleted file mode 100644
index 11d73973b413..000000000000
--- a/devel/gnome-vfs/files/patch-libgnomevfs_gnome-vfs-monitor.c
+++ /dev/null
@@ -1,131 +0,0 @@
---- libgnomevfs/gnome-vfs-monitor.c.orig Fri May 12 20:46:39 2006
-+++ libgnomevfs/gnome-vfs-monitor.c Fri May 12 22:29:57 2006
-@@ -48,9 +48,6 @@
-
- GList *pending_callbacks; /* protected by handle_hash */
- guint pending_timeout; /* protected by handle_hash */
-- guint timeout_count; /* count up each time pending_timeout is changed
-- to avoid timeout remove race.
-- protected by handle_hash */
- };
-
- struct GnomeVFSMonitorCallbackData {
-@@ -69,6 +66,9 @@
- static GHashTable *handle_hash = NULL;
- G_LOCK_DEFINE_STATIC (handle_hash);
-
-+static gint actually_dispatch_callback (gpointer data);
-+static guint32 get_min_delay (GList *list, gint32 now);
-+
- static void
- init_hash_table (void)
- {
-@@ -202,17 +202,25 @@
- return result;
- }
-
-+static void
-+install_timeout (GnomeVFSMonitorHandle *monitor_handle, time_t now)
-+{
-+ guint32 delay;
-
--typedef struct {
-- guint timeout_count;
-- GnomeVFSMonitorHandle *monitor_handle;
--} DispatchData;
-+ if (monitor_handle->pending_timeout)
-+ g_source_remove (monitor_handle->pending_timeout);
-+
-+ delay = get_min_delay (monitor_handle->pending_callbacks, now);
-+ if (delay == 0)
-+ monitor_handle->pending_timeout = g_idle_add (actually_dispatch_callback, monitor_handle);
-+ else
-+ monitor_handle->pending_timeout = g_timeout_add (delay * 1000, actually_dispatch_callback, monitor_handle);
-+}
-
- static gint
- actually_dispatch_callback (gpointer data)
- {
-- DispatchData *ddata = data;
-- GnomeVFSMonitorHandle *monitor_handle = ddata->monitor_handle;
-+ GnomeVFSMonitorHandle *monitor_handle = data;
- GnomeVFSMonitorCallbackData *callback_data;
- gchar *uri;
- GList *l, *next;
-@@ -228,13 +236,6 @@
-
- G_LOCK (handle_hash);
-
-- /* Don't clear pending_timeout if we started another timeout
-- * (and removed this)
-- */
-- if (monitor_handle->timeout_count == ddata->timeout_count) {
-- monitor_handle->pending_timeout = 0;
-- }
--
- if (!monitor_handle->cancelled) {
- /* Find all callbacks that needs to be dispatched */
- dispatch = NULL;
-@@ -305,13 +306,17 @@
-
- }
-
-- /* if we were waiting for this callback to be dispatched to free
-- * this monitor, then do it now.
-- */
-- if (monitor_handle->cancelled &&
-- no_live_callbacks (monitor_handle)) {
-- destroy_monitor_handle (monitor_handle);
-- }
-+ if (no_live_callbacks (monitor_handle)) {
-+ /* if we were waiting for this callback to be dispatched
-+ * to free this monitor, then do it now.
-+ */
-+ if (monitor_handle->cancelled)
-+ destroy_monitor_handle (monitor_handle);
-+ else
-+ monitor_handle->pending_timeout = 0;
-+ } else
-+ /* pending callbacks left, install another timeout */
-+ install_timeout (monitor_handle, now);
-
- G_UNLOCK (handle_hash);
-
-@@ -375,9 +380,7 @@
- GnomeVFSMonitorHandle *monitor_handle;
- char *uri;
- time_t now;
-- guint32 delay;
- GList *l;
-- DispatchData *ddata;
-
- g_return_if_fail (info_uri != NULL);
-
-@@ -435,26 +438,7 @@
- monitor_handle->pending_callbacks =
- g_list_append(monitor_handle->pending_callbacks, callback_data);
-
-- delay = get_min_delay (monitor_handle->pending_callbacks, now);
--
-- if (monitor_handle->pending_timeout) {
-- g_source_remove (monitor_handle->pending_timeout);
-- }
--
-- ddata = g_new (DispatchData, 1);
-- ddata->monitor_handle = monitor_handle;
-- ddata->timeout_count = ++monitor_handle->timeout_count;
--
-- if (delay == 0) {
-- monitor_handle->pending_timeout = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
-- actually_dispatch_callback,
-- ddata, (GDestroyNotify)g_free);
-- } else {
-- monitor_handle->pending_timeout = g_timeout_add_full (G_PRIORITY_DEFAULT,
-- delay * 1000,
-- actually_dispatch_callback,
-- ddata, (GDestroyNotify)g_free);
-- }
-+ install_timeout (monitor_handle, now);
- }
-
- g_free (uri);