
On Sat, 31 Dec 2005 18:16:21 +1100 (EST), Christopher Kohlhoff wrote
--- Jeff Garland <jeff@crystalclearsoftware.com> wrote: <snip>
So the questions are:
1) Is the intent to support an 'unlimited' number of timers portably?
Yes.
2) If yes, does the implementation do this for all platforms?
Yes.
First a minor clarification to put things in asio terminology: the question is not just about whether you can have an unlimited number of deadline_timer objects, but also whether you can have an unlimited number of pending asynchronous waits.
Yep, it's pending waits I was worried about.
The implementation of a deadline_timer object is just an expiry time (stored as a boost::posix_time::ptime).
Each pending asynchronous wait on a timer is represented by an entry in a heap, sorted by expiry. Only the earliest expiry is fed into the demultiplexer as a timeout, so in that sense there is only one OS timer being used.
Great thx -- that's what I thought I saw in the code :-) Jeff