Loading this url http://www.osnews.com/story.php?news_id=18873
Created attachment 17706 [details] limit to 5 connections globally The problem is that there's no way to limit curl to a specific number of connections. This patch solves the problem. However, we need to work more on that, because the limitation is globally and not per domain. I suggest to land this patch which is useful for other purposes (for example working on wysiwyg, which are really heavy if the issue remains).
Created attachment 17713 [details] fix curl I tested the patch by browsing several websites that before had this problem due to bad cURL management. The new patch is complete of ChangeLog. I also added a FIXME to create a separate stack of jobs per domain.
Created attachment 17714 [details] fix curl forgot header file
Created attachment 17789 [details] put jobs in the right queue Using a list, all requests were satisfied with the wrong order. Now a queue class has been added to do this work.
Comment on attachment 17789 [details] put jobs in the right queue So, this solves a lot of problems. Pages load faster, fewer resources used. r- though due to the crasher when jobs are cancelled.
Created attachment 17799 [details] do not crash on job cancel The previous patch crashed when a job was canceled. This one instead has the same behavior of the original code. Notice how using the queue most of the code in the manager has been collapsed and therefore cleaned. Still missing a separate stack of connections per domain, but this is another bug yet.
Created attachment 17804 [details] alternative using vectors
Comment on attachment 17799 [details] do not crash on job cancel Clearing review flag in favour of the Vector-based patch.
Comment on attachment 17804 [details] alternative using vectors r=me with the changes to the positioning of m_runningJobs increment/decrement we discussed.
Landed in r28573.