John Arbash Meinel
john at arbash-meinel.com
Tue Apr 22 20:39:44 BST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Javier Derderian wrote:
| You need to be aware of how it may affect the application's
| responsiveness: bzrlib is an synchronous API, meaning that when it
| takes a long time to complete a command, it prevents anything else
| from running in the same thread.
| I'm planning to integrate bzr progress indicators in this plugin, and that
| makes the "waiting" much smoother, i think.
| Anyway, I'll also do some test running bzr commands inside threads
| to allow gedit to keep working. But since the commands that took
| loonger (pull, push, etc) have a dialog and that dialog is modal
| it may not be a bad idea to just work with the progress indicator.
| Javier Derderian
| javierder at gmail.com <mailto:javierder at gmail.com>
| En la Alegría serás Imbatible
I know there are a few places inside bzrlib that are explicitly not threadsafe.
I've encountered it mostly through the ui_factory.get_nested_progress().
Specifically, it assumes that it grows as a simple stack, and the last process
to be started is the first to call .finished().
A lot of the code is probably thread safe, but the UI code is not. It might be
possible to write your own ui_factory which was thread safe, which would then
not cause this problem.
Just letting you know what I've run into.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the bazaar