Blog Archive for / news /
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::thread
C++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::thread
C++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 andnoexcept
for 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 left.
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 left.
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::ratio
instantiation as well as providing the::type
member to better emulate the C++0x working draft - On Windows,
just::thread
can 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 left.
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 left.
Concept Checking Without C++0x Concepts
Wednesday, 06 October 2010
My latest article, Concept Checking Without Concepts in C++ was published on the Dr Dobb's website a couple of weeks ago.
One of the important features of the now-defunct C++0x Concepts proposal was the ability to overload functions based on whether or not their arguments met certain concepts. This article describes a way to allow that for concepts based on the presence of particular member functions.
The basic idea is that you can write traits classes that detect
particular sets of member functions. Function overloads that require
these concepts can then be enabled or disabled by
using std::enable_if
with these traits.
The example I use is checking for a Lockable type which
has lock()
, unlock()
and try_lock()
member functions, but the same technique
could easily be used for other concepts that required other member
functions.
Read the article for the full details.
Posted by Anthony Williams
[/ news /] permanent link
Tags: concepts, cplusplus
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 left.
just::thread C++0x Thread Library V1.4.1 Released
Monday, 09 August 2010
I am pleased to announce that version 1.4.1
of just::thread
,
our C++0x Thread Library
has just been released.
Thisis an improvement over V1.4.0 in a number of areas:
- Both /Zc:wchar_t and /Zc:wchar_t- are supported with MSVC
-
std::chrono::high_resolution_clock
typedef added - Added support for shared libraries on Linux
- Faster mutex locking and unlocking on contended mutexes on Linux
- Faster blocking/unblocking for condition variables on Linux
- Support for tracking clock changes when waiting on
a
std::chrono::system_clock
time withstd::condition_variable
on Linux with kernels >= 2.6.31 - Support for floating-point durations
- Faster time retrieval with
std::chrono::monotonic_clock::now()
on Windows - Added support for Microsoft Visual Studio 2005
As usual, existing customers are entitled to a free upgrade to V1.4.1 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 left.
Enforcing Correct Mutex Usage with Synchronized Values
Friday, 28 May 2010
My latest article, Enforcing Correct Mutex Usage with Synchronized Values has been published on the Dr Dobb's website.
This article expands on the SynchronizedValue<T>
template I mentioned in my presentation
on Concurrency
in the Real World at ACCU 2010, and deals with the problem of
ensuring that the mutex associated with some data is locked whenever
the data is accessed.
The basic idea is that you
use SynchronizedValue<T>
wherever you have
an object of type T
that you wish to be protected with
its own mutex. The SynchronizedValue<T>
then
behaves like a pointer-to-T
for simple uses.
Read the article for the full details.
Posted by Anthony Williams
[/ news /] permanent link
Tags: mutex, cplusplus
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 left.
just::thread C++0x Thread Library V1.4 (FCD Edition) Released
Thursday, 06 May 2010
I am pleased to announce that version 1.4 (the FCD edition)
of just::thread
,
our C++0x Thread Library
has just been released.
With the release of the "FCD edition", just::thread
provides the first complete implementation of the multithreading
facilities from
the Final
Committee Draft (FCD) of the C++0x standard.
Changes include:
- New
promise::set_value_at_thread_exit
,promise::set_exception_at_thread_exit
, andpackaged_task::make_ready_at_thread_exit
member functions to defer unblocking waiting threads until the notifying thread exits -
New
notify_all_at_thread_exit function
for notifying condition variables when the notifying thread exits -
The
wait_for
andwait_until
member functions offuture
,shared_future
andatomic_future
return afuture_status
enum rather thanbool
to indicate whether the future is ready, the wait timed out, or the future contains a deferred async function - The destructor of the last future associated with an async function waits for that function to complete.
- New
ATOMIC_VAR_INIT
macro for initializing atomic objects - The callable object for a
packaged_task
is destroyed with thepackaged_task
rather than being kept alive until the future is destroyed
As usual, existing customers are entitled to a free upgrade to V1.4.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 left.
"Concurrency in the Real World" slides now available
Monday, 19 April 2010
The slides for my presentation on "Concurrency in the Real World" at the ACCU 2010 conference last week are now available.
The room was full, and quite warm due to the air conditioning having been turned off, but everything went to plan, and there were some insightful questions from the audience. I've thoroughly enjoyed presenting at ACCU in previous years, and this was no exception.
I covered the main pitfalls people encounter when writing multithreaded code, along with some techniques that I've found help deal with those problems, including some example code from projects I've worked on. As you might expect, all my examples were in C++, though the basic ideas are cross-language. I finished up by talking about what we might hope to get out of multithreaded code, such as performance, additional features and responsiveness.
There's a discount on
my just::thread
library until Friday 23rd April 2010, so if you're doing concurrency
in C++ with Microsoft Visual Studio on Windows or g++ on linux get
yourself a copy whilst it's on offer and start taking advantage of
the new
C++0x thread
library.
Posted by Anthony Williams
[/ news /] permanent link
Tags: concurrency, multithreading, c++, 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 left.
Sign up for a 50% discount just::thread FCD edition
Wednesday, 07 April 2010
I'm in the process of updating our C++0x thread library for VS2008, VC10, g++ 4.3 and g++ 4.4 to incorporate the changes to the C++0x thread library voted into the C++0x FCD. I'll be writing a blog post with more details in due course, but the big changes are:
- Functions for postponing notification of threads waiting on a
std::future
until the thread that set the value on thestd::promise
or ran thestd::packaged_task
has exited. - A similar facility for notifying
a
std::condition_variable
at thread exit. - Defined behaviour for
the
wait_for()
andwait_until()
member functions ofstd::future
when used withstd::async
and a launch policy ofstd::launch::sync
. - Changes to the initialization of atomic variables.
Existing customers will get the new version as a free upgrade, but
the rest of you can get a 50% discount if you subscribe to
my blog by email. Just fill in your name and email address
in the form below and be sure to click the confirmation link. You'll
then receive future blog posts by email, along with an announcement
and exclusive discount for the FCD edition
of just::thread
when it's released.
If you're reading this via RSS and your reader doesn't show you the form or doesn't allow you to submit your details, then please go to the web version of this blog entry.
If you've already subscribed by email then you don't need to subscribe again, you'll automatically receive the discount code.
Posted by Anthony Williams
[/ news /] permanent link
Tags: concurrency, threading, C++0x, just::thread
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 left.
Design and Content Copyright © 2005-2024 Just Software Solutions Ltd. All rights reserved. | Privacy Policy