Re: [Nautilus-list] gnome-vfs async race condition
- From: Martin Baulig <martin home-of-linux org>
- To: Darin Adler <darin eazel com>
- Cc: <nautilus-list lists eazel com>
- Subject: Re: [Nautilus-list] gnome-vfs async race condition
- Date: 12 Oct 2000 23:19:16 +0200
Darin Adler <darin eazel com> writes:
> on 10/12/00 10:19 AM, Martin Baulig at martin home-of-linux org wrote:
>
> > Oh, that'd be good if we could fix this - I wanted to debug my BonoboZoomable
> > thing this afternoon but was unable to do so 'cause gdb doesn't work with the
> > pthread gnome-vfs backend and Nautilus fails to work with the corba one ...
>
> Can you write a bug report for this one, with steps to reproduce and such?
Basically you just need to run nautilus in gdb on a slow machine to reproduce
this - unfortunately I was unable to reproduce it with a stand-alone nautilus
yet.
However, some debugging showed me the problem:
get_info_callback() is called whenever the VFS finished getting the mime info
for a file:
====
directory->details->get_info_file = NULL;
directory->details->get_info_in_progress = NULL;
result = results->data;
if (result->result != GNOME_VFS_OK) {
get_info_file->details->get_info_failed = TRUE;
get_info_file->details->get_info_error = result->result;
} else {
nautilus_file_update_info (get_info_file, result->file_info,
got_slow_mime_type);
}
nautilus_file_changed (get_info_file);
nautilus_directory_async_state_changed (directory);
===
The above piece of code (from get_info_callback()) results in
start_getting_file_info() being called again
(from nautilus_directory_async_state_changed()) with
directory->details->get_info_in_progress == NULL and thus it reads the
mime info of the same file yet again.
You can also insert a g_message() in file-method.c to see that the mime
info of the same file is fetched multiple times.
--
Martin Baulig
martin gnome org (private)
baulig suse de (work)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]