
on Mon Oct 08 2007, "Phil Endecott" <spam_from_boost_dev-AT-chezphil.org> wrote:
Jeff Garland wrote:
At the Kona meeting (just finished) the standard committee made very significant progress on threading for C++0x -- voting in a proposal written by Howard H, Beman, Anthony Williams, myself, and others -- subject to wording changes to be made by a small drafting committee. Basically we were in agreement on semantics, but even after several late night drafting sessions people weren't happy with the standardeze.
While much of the proposal is based on Boost.thread it has some serious departures in the way mutexes and guard interfaces work, it's use of date-time types for clock/timing interfaces and such.
This reminds me: I thought I posted something about this when Howard sent his proposal to this list, but it seems to have been lost in an email black-hole. Howard's code included timed operations that are templated on the time type, which (presumably) allows an implementation to provide versions for each of that platform's standard time types. This reminded me of some presentations about power saving at LinuxConf.EU: apparently reducing the number of timer interrupts is greatly beneficial to increasing energy efficiency, and one way to achieve this is to align all applications' periodic wakeups. Very often, we want to timeout after "about a second" but will actually specify a timeout value of "exactly 1.0000000 seconds"; if the API allowed us to indicate, for example, "between 0.1 and 1.5 seconds", or "1 second +/- 10%", then some hidden power-saving wakeup-alignment algorithm could be applied.
Agreed, this is hugely important. However, I think the standardese may be easier than that: unless we think some programs need both exact and flexible timeouts, we can leave it up to the implementation to interpret the timeout value. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com