C++14とC++1yの新しいペーパーがもっと公開された
New paper: N3710, Specifying the absence of “out of thin air” results (LWG2265)—Hans Boehm et al.
アトミック操作の、欠如していた「どこからともなく現れる(out of thin air)」 結果に関する規定。
どこからともなく現れる値というのはつまり、下位ビットと上位ビットが並列計算によってごっちゃになり、誰もそんな値を設定してないのにできてしまう値。
この現象に対応するため、memory_order_relaxed
にload-to-storeの順序に関する要件を追加する。それだけだとrelaxed操作が遅くなってしまうので、その代わりに非アトミック操作のnon_atomic_load()
関数とnon_atomic_store()
関数を追加する。
memo:
out of thin air - masugata_kの日記
メモリモデルとThin-air read - yohhoyの日記
New paper: N3709: Minutes for July 2013 Santa Clara SG1 Meeting—J Hoberock, A Mackintosh, H Boehm
SG1(Study Group 1 : Concurrency)のミーティング議事録。
futureのデストラクタやthen、resumable function(async/await)、ラッチ、並行非順序連想コンテナ、MapReduce、カウンタ、優先順位付きの更新関数、ストリームに対するガード等。
New paper: N3722, Resumable Functions—Niklas Gustafsson, Deon Brewis, Herb Sutter, Sana Mithani
非同期操作を簡易的に行うためのキーワード追加の提案。C#にあるasync
/await
。
このペーパーでは、async
というキーワードの代わりに、resumable
というキーワードが提案されている。
New paper: N3721, Improvements to std::future and Related APIs—Gustafsson Laksberg Sutter Mithani
連続的な非同期操作を行う際に、ネストが深くならないよう、非同期操作を平坦化(flatten)する機能の提案。
std::future
/std::shared_future
クラスに、then()
というメンバ関数を追加する(その他ユーティリティも)。
このペーパーでは、future<future<A>>
のようになっている型を暗黙的にアンラップする機能を追加している。