Boost logo

Boost :

Subject: Re: [boost] [threadpool] mixture of recursive invokation and fibers?
From: Oliver Kowalke (k-oli_at_[hidden])
Date: 2008-11-05 04:25:36


> > Imagine we have stage A which reads message from the network and stage B
> > processing
> > the messages read by A. If both use the same threadpool and mltiple
> > clients send a large
> > messages (ready will take some significant time) stage A coul possibly
> > allocate all
> > threads in the pool so not work-item in stage B can be executed. If both
> > stages use
> > different pools the processing of work-items is independent.
> > B can executes its task even if stage A becomes a high load.
>
> Why the A would allocate all the the threads in the pool? If the stage A
> handle a message and the request B to do somthing the task of B will be
> enqueued before other new messages comming from the network, so B will be
> interleaved with A. What I'm missing?

data-flow: network -> stage A -> stage B -> network

If 10.000 clients are connected to the service and 1% of the clients send a large message then stage A is triggered to read/process 100 requests at the same time - possibly all threads of the pool are used by stage A and tasks of stage B are queued in the pool until a worker-thread are finished with items of A.

regards,
Oliver

-- 
GMX Download-Spiele: Preizsturz! Alle Puzzle-Spiele Deluxe über 60% billiger.
http://games.entertainment.gmx.net/de/entertainment/games/download/puzzle/index.html

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk