Boost logo

Boost :

From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-05-30 11:45:18


Frank Mori Hess <frank.hess_at_[hidden]> writes:

> On Friday 30 May 2008 06:23 am, Anthony Williams wrote:
>>
>> Given wait_for_any and wait_for_all (see my latest revision), I don't
>> think we need these more complex composite classes in many cases, and
>> where we do they might be better implemented specifically for the case
>> at hand.
>
> One problem is wait_for_any is not sufficient to implement an efficient
> scheduler. You have to copy all the futures into wait_for_any so each
> wait_for_any call is O(N). So something like the future_selecter (should be
> spelled future_selector?) class I mentioned earlier would still be needed.

What do you mean by O(N) in this context?

You have N futures to wait for. You have to somehow register that
you're waiting for each one => you need O(N) operations.

I suppose that if one of the futures was already ready, you could skip
the rest, but that doesn't really strike me as much of an improvement.

Once it's done registering, wait_for_any then blocks until one of them
is ready. No polling, just a single wait.

Could you elaborate on what you were getting at?

Anthony

-- 
Anthony Williams            | Just Software Solutions Ltd
Custom Software Development | http://www.justsoftwaresolutions.co.uk
Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL

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