Subject: Re: [boost] Release managers: Boost.Thread breaking changes in 1.53
From: Rob Stewart (robertstewart_at_[hidden])
Date: 2013-01-01 16:05:41
On Jan 1, 2013, at 10:12 AM, Olaf van der Spek <ml_at_[hidden]> wrote:
> On Mon, Dec 31, 2012 at 6:08 PM, Tim Blechmann <tim_at_[hidden]> wrote:
>>> Why would anyone writing new software on a modern platform use boost::thread rather than std::thread unless then actually wanted the
>>> old semantics, anyway?
>> because one might want to run on systems with an older toolchain? for one of my projects, i have to stay compatible with gcc-4.2 for older osx compilers and with mingw/gcc-4.4 ...
>> being able to conditionally pull std::thread or boost::thread into scope helps me a LOT in the transition without breaking old compilers. there are a couple of other boost libraries which have the same purpose (atomic, chrono, move)
> Wouldn't it be simpler to use boost::thread in all cases?
> Anyway, conditionally using boost or std::thread does not require these breaking changes, does it?
Of course it does. Using one on one platform and the other on another platform is only plausible if they have the same API and behavior unless the client code is changed for each platform, too.
That leaves only four options for Boost:
1. Ignore C++11 compatibility.
2. Provide exactly C++11 API and behavior.
3. Provide 2 plus pure extensions.
4. Provide both 1 and 2 via two namespaces or classes.
Options 1 and 2 are the simplest for the (mostly) one maintainer of Boost.Thread we have currently.
I'll add my voice to those that don't want to lose everything that's unique in Boost.Thread. For example, I make good use of interruption points and I haven't taken the time to figure out how to do without them. I suspect I won't like the effect on my code or designs.