Note: This paper was approved on Saturday at the Issaquah WA USA ISO C++ meeting as an indication of content for a new Transactional Memory Technical Specification.
A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.
Document number: N3919
by Victor Luchango, Michael Wong, et al.
Transactional memory supports a programming style that is intended to facilitate parallel execution with a comparatively gentle learning curve. This document describes a proposal developed by SG5 to introduce transactional constructs into C++ as a Technical Specification. It is a revision of N3718, an earlier document with the same title, presented at the September 2013 meeting in Chicago. However, this document is selfcontained, and can be read independently of N3718. At the Chicago meeting, we received encouraging and helpful feedback, which we have used to revise this proposal.
This proposal is based in part on the Draft Specification for Transactional Constructs in C++ (Version 1.1) published by the Transactional Memory Specification Drafting Group in February 2012. It represents a pragmatic basic set of features, and omits or simplifies a number of controversial or complicated features from the Draft Specification. Our goal has been to focus SG5’s efforts towards a basic set of features that is useful and can support progress towards possible inclusion in the C++ standard.
In addition to a description of the proposal, this document contains a summary of some of feedback we received at the Chicago meeting and of the discussion within SG5 since that meeting. Unlike N3718, it does not include examples or precise wording changes, as we have not yet revised them to reflect the changes in the proposal since N3718. However, these changes, summarized in Section 2.1, are mostly superficial.