Patch KIO::AccessManager

Dawit A. adawit at
Mon Aug 17 14:16:19 BST 2009

On Monday 17 August 2009 04:09:53 Thiago Macieira wrote:
> Em Domingo 16 Agosto 2009, às 14:31:01, Dawit A. escreveu:
> > The attached patch changes KIO::AccessManager to schedule all the job
> > requests it receives to prevent the explosion of kio_http process that
> > can get spawned when many requests are made by an application all at
> > once, e.g. rendering any moderately complex site.
> >
> > You can easily see this by using the webkitpart in Konqueror and visiting
> > any moderately complex site. For example, before the patch visiting
> > spawns 21 kio_http processes where as only 2 are
> > spawned with the patch. Actually the scheduler always seems to spawn only
> > 2 processes per site.
> That's how it should be. I'm wondering why the explicitly scheduling is
> necessary.
> Shouldn't all jobs be scheduled by default in KIO?

Well KIO::Scheduler does schedule all jobs. However, it provides 3 different 
scheduling modes. 

The default mode,  Direct, will not control how many jobs gets to be spawned. 
Rather it simply assumes the application will manage its requests 
appropriately and simply recycle an existing job if it can be reused to fulfill 
the request or create a new one. That however means that it does not cope very 
well, from the prespective ioslave spawning, when an application creates too 
many jobs in a short time span...

I guess the default choice assumes that most developers do not have a need to 
do that... In face the scheduler documentation explicitly states for devlopers 
to use the scheduled mode if they create many jobs and do not want to have an 
ioslave for each job. 

More information about the kde-core-devel mailing list