Re: [Nautilus-list] gnome-vfs async race condition
- From: Darin Adler <darin eazel com>
- To: Martin Baulig <martin home-of-linux org>
- Cc: <nautilus-list lists eazel com>
- Subject: Re: [Nautilus-list] gnome-vfs async race condition
- Date: Thu, 12 Oct 2000 09:37:31 -0700
on 10/12/00 9:07 AM, Martin Baulig at martin home-of-linux org wrote:
> Unfortunately, I just discovered some more problems:
>
> ====
> #0 corba_gnome_vfs_async_get_file_info (handle_return=0x8206100,
> uris=0xbffff044, options=13,
> callback=0x407def08 <get_info_callback>, callback_data=0x820e500) at
> gnome-vfs-async-ops.c:421
> #1 0x4074d627 in gnome_vfs_async_get_file_info (handle_return=0x8206100,
> uris=0xbffff044, options=13,
> callback=0x407def08 <get_info_callback>, callback_data=0x820e500) at
> gnome-vfs-backend.c:643
> #2 0x407df418 in start_getting_file_info (directory=0x820e500) at
> nautilus-directory-async.c:2326
> #3 0x407dfa53 in start_or_stop_io (directory=0x820e500) at
> nautilus-directory-async.c:2508
> #4 0x407dfb1e in nautilus_directory_async_state_changed (directory=0x820e500)
> at nautilus-directory-async.c:2550
> #5 0x407df167 in get_info_callback (handle=0x821fce8, results=0x821b49c,
> callback_data=0x820e500)
> at nautilus-directory-async.c:2259
> #6 0x40b0e524 in impl_Notify_get_file_info (servant=0x821fdc8,
> results=0xbffff51c, ev=0xbffff56c)
> at gnome-vfs-slave-notify.c:697
> #7 0x40b03727 in _ORBIT_skel_GNOME_VFS_Slave_Notify_get_file_info
> (_ORBIT_servant=0x821fdc8, _ORBIT_recv_buffer=0x811a3d8,
> ev=0xbffff56c, _impl_get_file_info=0x40b0e2e0 <impl_Notify_get_file_info>) at
> gnome-vfs-slave-skels.c:1280
> #8 0x40154479 in ORBit_POA_handle_request (recv_buffer=0x811a3d8,
> poa=0x8119038) at orbit_poa.c:507
> #9 0x4015761f in ORBit_handle_incoming_request (recv_buffer=0x811a3d8) at
> server.c:89
> #10 0x40157964 in ORBit_handle_incoming_message (recv_buffer=0x811a3d8) at
> server.c:159
> #11 0x40177cd6 in giop_main_handle_connection (connection=0x8220080) at
> connection.c:1211
> #12 0x4010a0ec in orb_handle_connection (source=0x8220130, cond=G_IO_IN,
> cnx=0x8220080) at oaf-mainloop.c:69
> #13 0x400d4552 in g_io_unix_dispatch (source_data=0x8219e28,
> current_time=0xbffff740, user_data=0x8220080) at giounix.c:135
> #14 0x400d64e4 in g_main_dispatch (dispatch_time=0xbffff740) at gmain.c:656
> #15 0x400d6d23 in g_main_iterate (block=1, dispatch=1) at gmain.c:877
> #16 0x400d6f1c in g_main_run (loop=0x81277c8) at gmain.c:935
> #17 0x404a74cd in gtk_main () at gtkmain.c:476
> #18 0x401cafe5 in bonobo_main () at bonobo-main.c:271
> #19 0x806e45d in main (argc=1, argv=0xbffffa54) at nautilus-main.c:243
> ====
>
> In frame #5, we get a callback from the GnomeVFSSlave (which tells us that
> it's done reading the file info) - and in this callback we call
> nautilus_directory_async_state_changed() which results in
> gnome_vfs_async_get_file_info() being called again on the same directory :-(
This is a completely different problem and much easier to fix. The fact that
there's a callback involved is quite irrelevant. The redundant get_file_info
is due to a logic bug in nautilus-directory-async.c that we need to pin
down.
-- Darin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]