Blog Archive for / news /
Happy New Year 2012
Tuesday, 10 January 2012
Now the post-holidays rush is over, I'd like to wish you all a Happy New Year!
2011 was another good year for me. Sales of
Just::Thread,
my implementation of the C++11
thread library continue to grow,
and my book is finally
in typesetting, and nearly ready for printing. We had hoped to get
it done by the end of 2011, but last-minute corrections scuppered
that. It should now be done relatively quickly.
It's also been a big year for the C++ community: C++11 is now an official ISO standard. This is the culmination of many years of hard work from a huge number of people, so it's good to see it finally done.
Popular articles
As is my custom, here's a list of the 10 most popular articles and blog entries from the Just Software Solutions website in 2011.
- Implementing
a Thread-Safe Queue using Condition Variables
A description of the issues around writing a thread-safe queue, with code. - Implementing
drop-down menus in pure CSS (no JavaScript)
How to implement drop-down menus in CSS in a cross-browser fashion (with a teensy bit of JavaScript for IE). - Importing
an Existing Windows XP Installation into VirtualBox
This article describes how I recovered the hard disk of a dead laptop to run as a VM under VirtualBox. - Multithreading
in C++0x part 1: Starting Threads
This is the first part of my series on the new C++11 thread library. Links to the remaining parts are at the end of the article. - Thread-Safe
Copy and Move Constructors
This is a guest post by Michael Spertus on writing copy and move constructors for objects with internal locks. - Multithreading
in C++0x part 2: Starting Threads with Function Objects and
Arguments
This is the second part of my series on the new C++11 thread library, which covers using callable objects when starting threads, and passing arguments to the thread function. - Introduction
to C++ Templates
My basic introduction to C++ templates. - Multithreading
in C++0x part 8: Futures, Promises and Asynchronous Function
Calls
This is the eighth part of my series on the new C++11 thread library, which covers the "futures" mechanism for passing data between threads. - Thread
Interruption in the Boost Thread Library
A description of the thread interruption feature of the Boost Thread library. - Deadlock
Detection with just::thread
This article describes how to use the special deadlock-detection mode of ourjust::threadC++11 thread library to locate the cause of deadlocks.
What's coming in 2012?
Will 2012 be even better than 2011? I hope so. As I already mentioned, my book will finally be printed, which will be a big relief for me.
What are you looking forward to in 2011?
Posted by Anthony Williams
[/ news /] permanent link
Tags: popular, articles
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
just::thread C++0x Thread Library V1.7.0 Released
Wednesday, 05 October 2011
I am pleased to announce that version 1.7.0
of just::thread,
our C++0x Thread Library
has just been released.
This release adds official support for gcc v4.4 on Centos 6, so Just::Thread is now supported on Centos, Fedora, Ubuntu and Debian Linux distributions, as well as Microsoft Windows and Apple MacOSX.
The main change with this release is an enhancement to
the std::async
implementation. With this enhanced scheduler, the default launch
policy (std::launch::async | std::launch::deferred)
will defer forcing a decision until either enough resources become
available to schedule the task as std::launch::async,
or the task is forced to be scheduled
as std::launch:deferred by a call to a waiting function
(get(), wait(), wait_for() or
wait_until()). This will allow more tasks to be
scheduled as std::launch::async overall, and allow your
application to make better use of the available hardware
concurrency.
The implementation of recursive mutexes has been overhauled, leading to much faster lock and unlock times than in previous releases.
This release also provides debugger visualizers for Microsoft Visual Studio, to better show the state of Just::Thread objects such as futures. This will provide greater insight into the state of your program, and allow easier debugging.
Purchase your copy and get started with the C++0x thread library now.
As usual, existing customers are entitled to a free upgrade to V1.7.0 from all earlier versions.
Posted by Anthony Williams
[/ news /] permanent link
Tags: multithreading, concurrency, C++0x
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
Just::Thread now supports GCC on Windows and MacOSX
Tuesday, 14 June 2011
I am pleased to announce that support for
the TDM port of gcc 4.5.2
for Windows and the MacPorts
builds of gcc 4.3, 4.4 and 4.5 have now been added
to just::thread.
This release thus greatly improves the portability of the
library. You can now write code
using just::thread
that will work across Windows, Linux and MacOSX. With gcc 4.5
support across all 3 platforms, you can take advantage of the
extensive C++0x language support from that compiler too, including
lambda functions, rvalue references and variadic templates.
Get your copy now and add portability to your multithreaded programs.
Posted by Anthony Williams
[/ news /] permanent link
Tags: just::thread, cplusplus, multithreading, gcc, windows, macosx
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
just::thread C++0x Thread Library V1.6 (FDIS Edition) Released
Wednesday, 25 May 2011
I am pleased to announce that version 1.6 (the FDIS edition)
of just::thread,
our C++0x Thread Library
has just been released.
If you're interested in C++0x, I'm sure you're aware that the C++0x Final Draft International Standard (FDIS) was voted out at the last C++ Standards Committee meeting. See Michael Wong's blog post and Herb Sutter's blog post if you've been hiding under a rock for the last two months.
Anyway, after the vote at the meeting, the FDIS itself was
published in April, and just::thread has now been
updated to match the FDIS as close as possible. Where there have
been changes to names (such
as std::chrono::system_clock::to_time_point
becoming std::chrono::system_clock::from_time_t)
the old names have been kept, though they are marked "deprecated"
using compiler annotations.
Changes include:
- Support for gcc 4.6 on Ubuntu Natty (using the packages from the Ubuntu Toolchain PPA) and Fedora 15.
- Support for thread-local variables with non-trivial constructors
and destructors using
the
JSS_THREAD_LOCALmacro in place of the newthread_localkeyword (which is not supported in any current compilers) . - The
std::hash<std::thread::id>specialization has been added. - The new
constexprandnoexceptkeywords are used where supported (gcc 4.6 in -std=c++0x mode.) - The return type of lambda functions is correctly deduced
in
std::asyncin both gcc 4.5 and 4.6 and MSVC 2010. - Various optimizations, including reduction in thread creation
code and the overhead
of
std::async. - Added std::chrono::system_clock::from_time_t
in place
of
std::chrono::system_clock::to_time_point.
As usual, existing customers are entitled to a free upgrade to V1.6.0 from all earlier versions.
Posted by Anthony Williams
[/ news /] permanent link
Tags: multithreading, concurrency, C++0x
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
Picking Patterns for Parallel Programs; slides from ACCU 2011
Monday, 18 April 2011
On Saturday, I presented on Picking Patterns for Parallel Programs at ACCU 2011. We were in the Wolvercote room again, which was packed out — people sat on the floor when the chairs ran out.
I thoroughly enjoyed it (even with the minor technical issues), and I've had great feedback from several people who said it was really useful to them — Dmitry even posted on twitter that it was the "best tech talk".
The slides are available for download. The 50% discount on Just::thread mentioned at the end is only valid until 23rd April 2011.
Posted by Anthony Williams
[/ news /] permanent link
Tags: concurrency, parallelism, threading, accu
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
just::thread C++0x Thread Library V1.5.0 Released
Friday, 04 February 2011
I am pleased to announce that version 1.5.0
of just::thread,
our C++0x Thread Library
has just been released.
This release heralds official support for Debian Lenny and Squeeze, and Fedora 13 and 14; no longer are Linux developers restricted to Ubuntu.
This version has also been updated to match the latest C++ working draft. The resultant changes are:
- There is a new launch policy
for
std::async:std::launch::deferred. This replacesstd::launch::sync, and indicates that the supplied function should be run in the thread that callsget()orwait()on the resultant future rather than asynchronously on its own thread.std::launch::syncis still supported for backwards compatibility. - There is a new clock type:
std::chrono::steady_clock. This replacesstd::chrono::monotonic_clock, and is guaranteed to be continuously increasing at a steady rate. This is the clock used for duration-based timeouts.std::chrono::monotonic_clockis till supported for backwards compatibility. std::atomic_futurehas been removed from the standard draft. It is therefore deprecated injust::thread, though still supported for backwards compatibility.std::futurehas a new member functionshare()for easy conversion tostd::shared_future. This works well with the new C++0x use of auto, when you know you want to get astd::shared_futurefrom astd::promise,std::packaged_taskorstd::asynccall:int some_function(); std::shared_future<int> f(std::async(some_function)); // old syntax auto f2=std::async(some_function).share(); // new syntax
This release also provides support
for std::atomic<char16_t>
and std::atomic<char32_t>,
where char16_t and char32_t are provided
by the underlying platform.
Purchase your copy and get started with the C++0x thread library now.
As usual, existing customers are entitled to a free upgrade to V1.5.0 from all earlier versions.
Posted by Anthony Williams
[/ news /] permanent link
Tags: multithreading, concurrency, C++0x
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
Happy New Year 2011
Thursday, 13 January 2011
It's nearly two weeks into 2011 already (though it only seems a couple of days — where did it all go?), but I'd like to wish you all a (slightly belated) Happy New Year!
2010 was a good year for me. Sales of Just::Thread, my
implementation of the C++0x
thread library have been growing steadily — there's a new
version due out any day now, with support for the changes
accepted at the November 2010 C++ Standards meeting, and Just::Thread Pro is in the
works. I also presented
at the ACCU conference for the third year running.
It's also been a big year for the C++ community:
- the C++0x FCD was published, and we're now in the final phase of getting it ready for publication this year;
- Microsoft
Visual Studio 2010
was released, providing Windows developers access to several C++0x features such as rvalue references and lambda functions;
- g++ 4.5 was released, providing further C++0x support (including lambdas, again) to C++ developers across the wide variety of platforms supported by gcc;
- Plus, of course, new versions of other compilers and libraries too (including four(!) releases of the Boost C++ libraries).
Popular articles
As is my custom, here's a list of the 10 most popular articles and blog entries from the Just Software Solutions website in 2010. The key difference from last year's list is the rise of the C++0x thread library stuff.
- November
2010 C++ Standards Committee Mailing
My summary of the November 2010 C++ committee mailing. - Implementing
a Thread-Safe Queue using Condition Variables
A description of the issues around writing a thread-safe queue, with code. - just::thread
C++0x Thread Library V1.0 Released
This is the release announcement for ourjust::threadC++0x thread library. - Importing
an Existing Windows XP Installation into VirtualBox
This article describes how I recovered the hard disk of a dead laptop to run as a VM under VirtualBox. - Deadlock
Detection with just::thread
This article describes how to use the special deadlock-detection mode of ourjust::threadC++0x thread library to locate the cause of deadlocks. - Implementing
drop-down menus in pure CSS (no JavaScript)
How to implement drop-down menus in CSS in a cross-browser fashion (with a teensy bit of JavaScript for IE). - Multithreading
in C++0x part 1: Starting Threads
This is the first part of my series on the new C++0x thread library. Links to the remaining parts are at the end of the article. - Thread
Interruption in the Boost Thread Library
A description of the thread interruption feature of the Boost Thread library. - Introduction
to C++ Templates
My basic introduction to C++ templates. - October 2010 C++ Standards Committee Mailing
My summary of the October 2010 C++ committee mailing, and the big issues for discussion at the November 2010 meeting — implicit move functions andnoexceptfor destructors.
What's coming in 2011?
Will 2011 be even better than 2010? I hope so. As I already
mentioned, there's a new version of just::thread coming
soon, along with Just::Thread Pro. Also,
both the C++0x standard and my book should finally be
published. I'll also be presenting at ACCU 2011 in April —
hope to see you there.
What are you looking forward to in 2011?
Posted by Anthony Williams
[/ news /] permanent link
Tags: popular, articles
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
Coming Soon: Just::Thread Pro
Friday, 29 October 2010
Multithreaded code doesn't have to be complicated.
That's the idea behind the Just::Thread Pro library. By providing a set of high level facilities in the library, your application code can be simplified — rather than spending your time on the complexities of multithreading and concurrency you can instead focus on what it is your application is trying to achieve.
Building on the Just::Thread C++0x thread library, Just::Thread Pro will provide facilities to:
- Encapsulate communication between threads to avoid deadlocks and race conditions
- Easily scale your application to make use of multi-core processors
- Parallelize existing single-threaded code without a major rewrite
Just::Thread Pro will be available for all platforms supported by Just::Thread.
Head over to the Just::Thread Pro website and sign up to receive further news about the library and notification when it is released.
Posted by Anthony Williams
[/ news /] permanent link
Tags: concurrency, cplusplus, multithreading
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
just::thread C++0x Thread Library V1.4.2 Released
Friday, 15 October 2010
I am pleased to announce that version 1.4.2
of just::thread,
our C++0x Thread Library
has just been released.
The big change with this release is the new support for gcc 4.5 on Ubuntu Linux. If you're running Ubuntu Lucid then you can get the .DEB files for gcc 4.5 from yesterday's blog post. For Ubuntu Maverick, gcc 4.5 is in the repositories.
Other changes:
- Overflow in ratio arithmetic will now cause a compilation failure
- Ratio arithmetic operations derive from the resulting
std::ratioinstantiation as well as providing the::typemember to better emulate the C++0x working draft - On Windows,
just::threadcan now be used in MFC DLLs
As usual, existing customers are entitled to a free upgrade to V1.4.2 from all earlier versions.
Posted by Anthony Williams
[/ news /] permanent link
Tags: multithreading, concurrency, C++0x
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.
gcc 4.5 Packages for Ubuntu Lucid
Thursday, 14 October 2010
Ubuntu Maverick was released earlier this week. Amongst other things, gcc 4.5 is available in the repositories, whereas for previous versions you had to build it yourself from source.
In order to save you the pain of compiling gcc 4.5 for yourself (which can take a while, and overheated my laptop when I tried), I've built it for Ubuntu Lucid, and uploaded the .deb files to my website. The .debs are built from the Maverick source packages for gcc 4.5.1, binutils 2.20.51, cloog-ppl and mpclib, and I've built them for both i386 and amd64 architectures.
- binutils_2.20.51.20100908-0ubuntu2_amd64.deb
- binutils_2.20.51.20100908-0ubuntu2_i386.deb
- cpp-4.5_4.5.1-7ubuntu2_amd64.deb
- cpp-4.5_4.5.1-7ubuntu2_i386.deb
- g++-4.5_4.5.1-7ubuntu2_amd64.deb
- g++-4.5_4.5.1-7ubuntu2_i386.deb
- gcc-4.5-base_4.5.1-7ubuntu2_amd64.deb
- gcc-4.5-base_4.5.1-7ubuntu2_i386.deb
- gcc-4.5_4.5.1-7ubuntu2_amd64.deb
- gcc-4.5_4.5.1-7ubuntu2_i386.deb
- libcloog-ppl0_0.15.9-2_amd64.deb
- libcloog-ppl0_0.15.9-2_i386.deb
- libgcc1_4.5.1-7ubuntu2_amd64.deb
- libgcc1_4.5.1-7ubuntu2_i386.deb
- libgomp1_4.5.1-7ubuntu2_amd64.deb
- libgomp1_4.5.1-7ubuntu2_i386.deb
- libmpc2_0.8.2-1build1_amd64.deb
- libmpc2_0.8.2-1build1_i386.deb
- libstdc++6-4.5-dev_4.5.1-7ubuntu2_amd64.deb
- libstdc++6-4.5-dev_4.5.1-7ubuntu2_i386.deb
- libstdc++6_4.5.1-7ubuntu2_amd64.deb
- libstdc++6_4.5.1-7ubuntu2_i386.deb
Enjoy!
Posted by Anthony Williams
[/ news /] permanent link
Tags: gcc, lucid, ubuntu
| Stumble It!
| Submit to Reddit
| Submit to DZone ![]()
If you liked this post, why not subscribe to the RSS feed
or Follow me on Twitter? You can also subscribe to this blog by email using the form on the right.

