Boost logo

Boost :

From: Howard Hinnant (hinnant_at_[hidden])
Date: 2007-10-08 11:18:44


On Oct 8, 2007, at 10:42 AM, Anthony Williams wrote:

> Jeff Garland <jeff_at_[hidden]> writes:
>
>> 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.
>
> That's unfortunate.
>
>> 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. At this point I feel
>> it would be
>> very important to have a reference implementation widely available
>> to Boosters
>> and others to play with so that any issues are shaken out while
>> there's still
>> time tweak things. Howard has been maintaining a reference
>> implementation,
>> but this is a call out to the broader thread development team (not
>> sure who
>> all that is now besides Anthony) to consider how we might formalize
>> this into
>> Boost.threads.
>>
>> Thoughts?

I can help with a posix implementation. I don't have windows to
develop on though.

>> The boost thread team is pretty much just me at the moment, though
>> there's a
> reasonable level of interest from others (such as Peter Dimov).
>
> I'm trying to update trunk to be have more of the C++0x interface at
> the
> moment. I've already integrated call_once (though I forgot only MSVC
> has
> _ReadWriteBarrier, and I haven't done the variadic arguments yet),
> and I'm
> currently working on the mutexes. I'm keen to get everything updated
> as much
> as possible before the 1.35 cutoff. I've got a reasonably up-to-date
> Windows
> implementation to use as a basis, and I've been working through the
> POSIX
> stuff.
>
> Also, even though it's been punted to TR2, I want to get the read-
> write mutex
> back in --- I have a new implementation, and it's been missing since
> 1.32, so
> it would be good to get it back in the relese.

I can help on posix here too. I'm hoping it will look something like:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2406.html#shared_mutex

or at least take some of those design decisions into consideration.
The downside is that the above really needs rvalue ref for the upgrade-
stuff. Possibilities include just not doing the upgrade stuff if
rvalue ref is missing, or simulating move along the lines of what Dave
has done.

The standard containers are an integral part of the proposed
std::thread package. Without move support in the standard containers
useful structures such as vector<thread> are going to be missing. The
lack of thread factory functions will also be unfortunate until
compilers (such as gcc 4.3, boostcon and CodeWarrior 10) support
returning move-only types from functions.

-Howard


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