(This revision of N1162 adds links to five papers
in WG21s pre-Berlin mailing. Additions are in bold type.)
WG21s Evolution Working Group is currently considering threads.
There are three more or less competing proposals that WG14
might be interested in.
- It is believed that threads cannot be implemented correctly
without at least some compiler support (Hans Boehm,
Cannot be Implemented as a Library),
so Lawrence Crowl suggests in WG21
a language-based solution with new keywords taken from the implementor namespace.
There is a revision of N1874,
in WG21s pre-Berlin mailing.
- One library-based proposal is the open-source
Boost Threads Library,
commercial versions of which are currently being shipped
by both Freescale and Dinkumware. The Dinkumware implementation has a C interface
described at the end of WG21
and its this
interface that might be of interest to WG14.
- There is also sentiment, but no formal paper, for that subset of
POSIX threads that can be implemented widely. As of this writing,
its not clear how large that subset would be. The problem is a
common belief that Pthreads cannot be implemented efficiently on one
In addition to those three, Hans Boehm, Doug Lea and Bill Pugh propose in WG21
a memory model and a lock-free atomics library to support a larger threads
library. These were revised by Boehm and appear in WG21s pre-Berlin mailing as
Boehm, Lea and Pugh also contributed a paper, WG14
that was in our pre-Mont-Tremblant mailing; and Boehm has
links to a number of informative papers and the beginnings of a FAQ at
And Nick Maclaren has three papers in WG21s
pre-Berlin mailing that might be of interest:
Why POSIX Threads Are Unsuitable for C++
The Memory Model and the C++ Library, Non-Memory Actions etc.
Generic Support for Threading Models
As this is clearly an area in which C/C++ compatibility is
absolutely essential, WG21s Evolution Working Group welcomes input from WG14;
and Bill Seymour has offered to take to the Evolution Working Group in Berlin any
discussion and straw poll results that WG14 wish to provide.