Skip to content

Commit 1e87d12

Browse files
committed
rcu: C++26 RCUヘッダ概要(#1183)
1 parent a4f1067 commit 1e87d12

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

lang/cpp26.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
9898
## ライブラリ更新の概要
9999
### 新ライブラリ
100100
- 文字列エンコーディングを識別するライブラリとして、[`<text_encoding>`](/reference/text_encoding.md.nolink)を追加
101-
- 並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、[`<rcu>`](/reference/rcu.md.nolink)を追加
101+
- 並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、[`<rcu>`](/reference/rcu.md)を追加
102102
- 並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加
103103
- データ並列ライブラリとして、[`<simd>`](/reference/simd.md.nolink)を追加
104104
- デバッグサポートのライブラリとして[`<debugging>`](/reference/debugging.md)を追加

reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208
| [`<latch>`](/reference/latch.md) | ラッチ同期 | C++20 |
209209
| [`<barrier>`](/reference/barrier.md) | バリア同期 | C++20 |
210210
| [`<future>`](/reference/future.md) | Future | C++11 |
211-
| [`<rcu>`](/reference/rcu.md.nolink) | データの参照・更新 | C++26 |
211+
| [`<rcu>`](/reference/rcu.md) | データの参照・更新 | C++26 |
212212
| [`<hazard_pointer>`](/reference/hazard_pointer.md.nolink) | ハザードポインタ | C++26 |
213213
| [`<simd>`](/reference/simd.md.nolink) | データ並列 | C++26 |
214214

reference/rcu.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# rcu
2+
* rcu[meta header]
3+
* cpp26[meta cpp]
4+
5+
`<rcu>`ヘッダでは、並行なデータの参照・更新を実現する[Read-Copy Update(RCU)機構](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B3%E3%83%94%E3%83%BC%E3%83%BB%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88)のための部品を定義する。
6+
7+
RCU同期メカニズムは、複数スレッド間で共有されるデータが高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構はスレッド間の排他制御を行わず、更新操作により不要となった古いデータを安全に解放するタイミング制御を行う。
8+
9+
10+
| 名前 | 説明 | 対応バージョン |
11+
|-----------------|----------------|----------------|
12+
| [`rcu_obj_base`](rcu/rcu_obj_base.md.nolink) | RCU対象オブジェクトの基底クラス(class template) | C++26 |
13+
| [`rcu_domain`](rcu/rcu_domain.md.nolink) | RCUドメイン(class) | C++26 |
14+
| [`rcu_default_domain`](rcu/rcu_default_domain.md.nolink) | デフォルトのRCUドメイン取得(function) | C++26 |
15+
| [`rcu_synchronize`](rcu/rcu_synchronize.md.nolink) | RCUドメインのアンロック完了を待機(function) | C++26 |
16+
| [`rcu_barrier`](rcu/rcu_barrier.md.nolink) | メモリ解放操作完了を待機(function) | C++26 |
17+
| [`rcu_retire`](rcu/rcu_barrier.md.nolink) | メモリ解放操作をスケジュル(function template) | C++26 |
18+
19+
20+
## バージョン
21+
### 言語
22+
- C++26
23+
24+
### 処理系
25+
- [Clang](/implementation.md#clang): ??
26+
- [GCC](/implementation.md#gcc): ??
27+
- [ICC](/implementation.md#icc): ??
28+
- [Visual C++](/implementation.md#visual_cpp): ??
29+
30+
31+
## 関連項目
32+
- [`<hazard_pointer>`](hazard_pointer.md.nolink)
33+
34+
35+
## 参照
36+
- [P2545R4 Read-Copy Update(RCU)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2545r4.pdf)

0 commit comments

Comments
 (0)