Version 3.04.00 released
Version 3.04 adds support for std::thread, the new standard threading component of C++. This means that Theron can now use std::thread as its underlying thread library, as well as the existing support for Boost.Thread and Windows threads, which are both still supported.
The std::thread support consists of new implementations of the simple four-class API with which Theron wraps its underlying thread library, hiding the differences between different libraries. The new Std implementations were contributed by Chinasaur and are similar to those already provided for Boost.Thread, due to the basis of std::thread on Boost.Thread.
Support for std::thread is enabled via a new THERON_USE_STD_THREADS define, which defaults to 0. As well as the code support, support for std::thread extends to the included makefile and Visual Studio solution. The makefile now responds to threads=std as well as the existing threads=boost and threads=windows. The Visual Studio solution now includes separate configurations for building with the three supported thread libraries. The configurations are implemented using the new Property Sheet mechanism introduced in Visual Studio 2010, which allows the settings for a configuration to be specified consistently in one place for multiple projects within a solution.
The Getting Started page on the website has been completely rewritten to reflect these build changes, and is now much more comprehensive. Consult it for help with the new build options. It is expected that some tweaking of build settings such as include paths, library paths and library names may be required.
Finally, some notes. The location of Boost is assumed to be /usr/include and /usr/lib in makefile builds, and $(BOOST_LOCATION) in Visual Studio builds. Support for std::thread in Visual Studio is currently tested against Just Thread, a commercial third-party implementation of std::thread, and the library and include paths are set up accordingly. Makefile builds, on the other hand, have no dependency on Just Thread and instead assume a recent version of GCC with support for C++11 features such as std::thread.
Story published 1 April 2012.