On Jun 25, 2009, at 7:20 AM, Michal Pryc wrote:
Tom Mueller wrote:
johan...@sun.com wrote:

The transport uses a single libcurl multi-handle, which means that if multiple threads are going to use the transport, we have to serialize callers of multi_perform() for our handle. All of the client is single
threaded, and I haven't seen any documentation from the GUI team
outlining a multi-threaded approach to downloading.

Do you mean a single one for all images, or one per image? (Sorry, I haven't had a chance to review the code yet).

The updatetool GUI currently uses multi-threading for evaluating update plans for multiple user images simultaneously.
Could this at least be done at the image level to allow this?
I have double checked this and it looks like the background thread for getting package descriptions is causing the problem. What is currently happening, when the user is starting PM, the background thread is fired to get descriptions for the packages. This is going to change, so when the user is scrolling to some set of packages, the descriptions are being gathered for the visible rows only. Also when the user performs search, for the visible rows descriptions are being downloaded.

At the same time the packae may be installed. So when the description thread is not yet finished and the user will try to install package this problem will occur. Also when the user clicks on the license tab, sometimes it takes ~3 seconds to download the license. During this time if I will hit install button, this error will occur.

One solution would be to add the lock mechanism in the GUI, but I am not sure if this would be better solution then adding such mechanism in the api itself. There is already lock mechanism in the api for other purposes.


While it makes sense for the transport layer to have a lock, shouldn't the GUI not bother attempting to perform these operations given that modal nature of the install/update dialogs and to avoid the unnecessary overhead of a waiting background thread?

Cheers,
--
Shawn Walker
_______________________________________________
pkg-discuss mailing list
pkg-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to