tags 403247 +patch thanks Hi,
Applying the other patch made by upstream seems to fix the problem. I'm really not sure but I believe something like this is what was going on: The FAMOpen2, call starts a server and retries 25 times to connect to the server, every 50ms, giving a grand total of 1.25s top. On the other hand, if the server is started on an nfs directory it seems to have an idle 1 sec lapse. So, blame the scheduler or anything you can think of, but 0.25s wasn't enought in most of the times to do the connection. And thunar goes on without a connection to the gam_server. -- A computer scientist is someone who, when told to "Go to Hell," sees the "go to," rather than the destination, as harmful. Saludos /\/\ /\ >< `/
diff -ruNa debian/gamin-0.1.8/server/gam_inotify.c gamin/server/gam_inotify.c --- debian/gamin-0.1.8/server/gam_inotify.c 2006-10-25 13:13:46.000000000 -0300 +++ gamin/server/gam_inotify.c 2007-03-29 20:53:03.000000000 -0300 @@ -154,6 +154,7 @@ gboolean gam_inotify_init (void) { + gam_poll_basic_init (); gam_server_install_kernel_hooks (GAMIN_K_INOTIFY2, gam_inotify_add_subscription, gam_inotify_remove_subscription, diff -ruNa debian/gamin-0.1.8/server/gam_poll_basic.c gamin/server/gam_poll_basic.c --- debian/gamin-0.1.8/server/gam_poll_basic.c 2005-09-21 13:21:04.000000000 -0300 +++ gamin/server/gam_poll_basic.c 2007-03-29 20:53:03.000000000 -0300 @@ -46,6 +46,8 @@ static GaminEventType gam_poll_basic_poll_file(GamNode * node); static gboolean gam_poll_basic_scan_callback(gpointer data); +static gboolean scan_callback_running = FALSE; + gboolean gam_poll_basic_init () { @@ -56,7 +58,6 @@ gam_poll_basic_remove_all_for, gam_poll_basic_poll_file); - g_timeout_add(1000, gam_poll_basic_scan_callback, NULL); GAM_DEBUG(DEBUG_INFO, "basic poll backend initialized\n"); return TRUE; } @@ -116,6 +117,12 @@ gam_poll_generic_add (node); + if (!scan_callback_running) + { + scan_callback_running = TRUE; + g_timeout_add (1000, gam_poll_basic_scan_callback, NULL); + } + GAM_DEBUG(DEBUG_INFO, "Poll: added subscription for %s\n", path); return TRUE; } @@ -356,6 +363,7 @@ gam_poll_basic_scan_callback(gpointer data) { int idx; + gboolean did_something = FALSE; gam_poll_generic_update_time (); @@ -371,6 +379,8 @@ g_assert (node); + did_something = TRUE; + if (node->is_dir) { gam_poll_generic_scan_directory_internal(node); } else { @@ -391,6 +401,8 @@ g_assert (node); + did_something = TRUE; + #ifdef VERBOSE_POLL GAM_DEBUG(DEBUG_INFO, "Checking missing file %s\n", node->path); #endif @@ -412,5 +424,10 @@ } } + if (!did_something) { + scan_callback_running = FALSE; + return FALSE; + } + return TRUE; }