GNOME Bugzilla – Bug 668747
FileChooser's get_uris uses excessive fsyncs and blocks the main loop
Last modified: 2012-01-31 15:29:18 UTC
In pitivi, we have a file chooser dialog where you select multiple files, press OK and then pitivi does filechooser.get_uris() to get the list of files it has to process. However, as soon as you start, the filechooser blocks the main thread. Pitivi's processing of those files (gst's discoverer) is async and is not the one blocking the UI. We spent three hours digging to find out why gst discoverer's signals could not be received in a reasonable time frame: for 56 URIs for example, it takes about 6 seconds until the main loop is accessible again, then everything unblocks, the signals get received and the UI updates itself. Here's what happens in gdb:
+ Trace 229523
Thread 1 (Thread 0xb7fe66c0 (LWP 20359))
The fix for this made it into 3.x; see commit ce5a29bc38. It was previously filed as bug #616997. You may want to backport this to 2.24 and push the fix :) *** This bug has been marked as a duplicate of bug 616997 ***
Good to know it's fixed in 3.x. Given that eventually pitivi will switch to gtk3 and that this bug is an annoyance rather than a critical problem, I guess I'll just wait :)