Question about gnome-vfs async module callbacks



Over the week-end, I tried to do some modifications in the async
callback called by Nautilus when one gnome-vfs module uses
gnome_vfs_module_callback_invoke, and I had a lockup problem.

Basically, I was trying to do that:
GnomeVFSAsyncModuleCallback authentication_callback(...,
GnomeVFSModuleCallbackResponse response, gpointer response_data)
{
	some_treatment();
	/* notify gnomevfs that the async treatment is finished */
	response(response_data);
}

but that hangs because of the way locking is done in
gnome-vfs-module-callback.c in async_callback_response and
async_callback_invoke.

Using for example g_thread_new(response, response_data, ...) instead of
response(response_data) seems to work fine.

So my question is: Is it a bug in gnome-vfs, or something which is to be
expected when you write bad code ?

Christophe




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]