Skip to content

Commit 42fb1f9

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 8e1aff8 commit 42fb1f9

File tree

9 files changed

+259
-135
lines changed

9 files changed

+259
-135
lines changed

reference/chrono/make24.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ <h2>例</h2>
239239
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span> <span class="nb">false</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">0h</a></span><span class="p">);</span>
240240

241241
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">);</span>
242-
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1LL</span><span class="n">oydszDfvVWNLCyAWLiUKOQtDRmRFmo</span><span class="p">);</span>
242+
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">);</span>
243243
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">15h</a></span><span class="p">);</span>
244244
<span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">11h</a></span><span class="p">,</span> <span class="nb">true</span><span class="p">)</span> <span class="o">==</span> <span class="n"><a href="duration/op_h.html">23h</a></span><span class="p">);</span>
245245
<span class="p">}</span>

reference/rcu.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<meta property="og:url" content="https://cpprefjp.github.io/reference/rcu.html" />
2929
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
3030
<meta property="og:type" content="article" />
31-
<meta property="og:description" content="&amp;lt;rcu&amp;gt;rcu(C++26) &amp;lt;rcu&amp;gt;ヘッダでは、並行なデータの参照・更新を実現するRead-Copy Update(RCU)機構のための部品を定義する。 RCU同期メカニズムは、複数スレッド間で共有されるデータが高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構はスレッド間の排他制御を行わず、更新操作により不要となった古いデータを安全に解放する" />
31+
<meta property="og:description" content="&amp;lt;rcu&amp;gt;rcu(C++26) &amp;lt;rcu&amp;gt;ヘッダでは、並行なデータの参照・更新を実現するRead-Copy Update(RCU)機構のための部品を定義する。 RCU同期メカニズムは、複数スレッド間で共有されるリンク方式データ構造が高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構のデータ読み取りではスレッド間の排他制御を行わず、更新操作により不要と" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="rcu - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/rcu.html" />
35-
<meta name="twitter:description" content="&amp;lt;rcu&amp;gt;rcu(C++26) &amp;lt;rcu&amp;gt;ヘッダでは、並行なデータの参照・更新を実現するRead-Copy Update(RCU)機構のための部品を定義する。 RCU同期メカニズムは、複数スレッド間で共有されるデータが高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構はスレッド間の排他制御を行わず、更新操作により不要となった古いデータを安全に解放する" />
35+
<meta name="twitter:description" content="&amp;lt;rcu&amp;gt;rcu(C++26) &amp;lt;rcu&amp;gt;ヘッダでは、並行なデータの参照・更新を実現するRead-Copy Update(RCU)機構のための部品を定義する。 RCU同期メカニズムは、複数スレッド間で共有されるリンク方式データ構造が高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構のデータ読み取りではスレッド間の排他制御を行わず、更新操作により不要と" />
3636

3737

3838
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2025-02-05T10:01:51">
180-
2025年02月05日 10時01分51秒
179+
<span itemprop="datePublished" content="2025-02-06T01:48:43">
180+
2025年02月06日 01時48分43秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -202,7 +202,7 @@
202202

203203
<div class="header">&lt;rcu&gt;</div><h1 itemprop="name"><span class="token">rcu</span><span class="cpp cpp26" title="C++26で追加">(C++26)</span></h1>
204204
<div itemprop="articleBody"><p><code>&lt;rcu&gt;</code>ヘッダでは、並行なデータの参照・更新を実現する<a href="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" target="_blank">Read-Copy Update(RCU)機構</a>のための部品を定義する。</p>
205-
<p>RCU同期メカニズムは、複数スレッド間で共有されるデータが高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構はスレッド間の排他制御を行わず、更新操作により不要となった古いデータを安全に解放するタイミング制御を行う</p>
205+
<p>RCU同期メカニズムは、複数スレッド間で共有されるリンク方式データ構造が高頻度で参照され、稀に更新されるようなユースケースに適している。RCU機構のデータ読み取りではスレッド間の排他制御を行わず、更新操作により不要となった古いデータを安全に回収(メモリ解放)するタイミングを制御する</p>
206206
<table border="1" bordercolor="#888" style="border-collapse:collapse">
207207
<thead>
208208
<tr>

reference/rcu/rcu_domain.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ <h2>メンバ関数</h2>
260260
</tbody>
261261
</table>
262262
<h2></h2>
263-
<p><div class="yata" id="5b4b974dfad1f03b2420b52d121b846ff0d9b476"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf">&lt;rcu&gt;</span><span class="cp"></span>
263+
<p><div class="yata" id="5b4b974dfad1f03b2420b52d121b846ff0d9b476"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../rcu.html">&lt;rcu&gt;</a></span><span class="cp"></span>
264264
<span class="cp">#include</span> <span class="cpf"><a href="../mutex.html">&lt;mutex&gt;</a></span><span class="cp"></span>
265265

266266
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>

reference/rcu/rcu_obj_base.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-02-05T10:01:51">
192-
2025年02月05日 10時01分51秒
191+
<span itemprop="datePublished" content="2025-02-06T01:48:43">
192+
2025年02月06日 01時48分43秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -264,7 +264,7 @@ <h2>例</h2>
264264
<p><div class="yata" id="25bbbcfcc369bbb4bef5ac826f2edf4bf1bbd262"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../atomic.html">&lt;atomic&gt;</a></span><span class="cp"></span>
265265
<span class="cp">#include</span> <span class="cpf"><a href="../mutex.html">&lt;mutex&gt;</a></span><span class="cp"></span>
266266
<span class="cp">#include</span> <span class="cpf"><a href="../thread.html">&lt;thread&gt;</a></span><span class="cp"></span>
267-
<span class="cp">#include</span> <span class="cpf">&lt;rcu&gt;</span><span class="cp"></span>
267+
<span class="cp">#include</span> <span class="cpf"><a href="../rcu.html">&lt;rcu&gt;</a></span><span class="cp"></span>
268268

269269
<span class="k">struct</span> <span class="nl">Data</span> <span class="p">:</span> <span class="n"><span style="color:#ff0000">std::rcu_obj_base</span></span><span class="o">&lt;</span><span class="n">Data</span><span class="o">&gt;</span> <span class="p">{</span>
270270
<span class="kt">int</span> <span class="n">m1</span><span class="p">,</span> <span class="n">m2</span><span class="p">;</span>
@@ -286,21 +286,21 @@ <h2>例</h2>
286286
<span class="p">{</span>
287287
<span class="n">Data</span> <span class="o">*</span><span class="n">newdata</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Data</span><span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">};</span>
288288
<span class="c1">// 新しいデータで共有データを更新(Update)</span>
289-
<span class="n">Data</span> <span class="o">*</span><span class="n">old_data</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">exchange</span><span class="p">(</span><span class="n">newdata</span><span class="p">);</span>
289+
<span class="n">Data</span> <span class="o">*</span><span class="n">old_data</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n"><a href="../atomic/atomic/exchange.html">exchange</a></span><span class="p">(</span><span class="n">newdata</span><span class="p">);</span>
290290

291291
<span class="c1">// 古いデータを読み取り中のスレッドがなくなったタイミングで</span>
292292
<span class="c1">// データ領域の回収(メモリ解放)を行うようスケジューリングする</span>
293-
<span class="n">old_data</span><span class="o">-&gt;</span><span class="n">retire</span><span class="p">();</span>
293+
<span class="n">old_data</span><span class="o">-&gt;</span><span class="n"><a href="rcu_obj_base/retire.html">retire()</a></span><span class="p">;</span>
294294
<span class="p">}</span>
295295

296296
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
297297
<span class="p">{</span>
298298
<span class="c1">// 共有データ初期化</span>
299299
<span class="n">Data</span> <span class="o">*</span><span class="n">newdata</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Data</span><span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">};</span>
300-
<span class="n">data</span><span class="p">.</span><span class="n">store</span><span class="p">(</span><span class="n">newdata</span><span class="p">);</span>
300+
<span class="n">data</span><span class="p">.</span><span class="n"><a href="../atomic/atomic/store.html">store</a></span><span class="p">(</span><span class="n">newdata</span><span class="p">);</span>
301301

302302
<span class="c1">// 共有データへ並行アクセス</span>
303-
<span class="n">std</span><span class="o">::</span><span class="n">jthread</span> <span class="n">th</span><span class="p">{[]</span> <span class="p">{</span>
303+
<span class="n"><a href="../thread/jthread.html">std::jthread</a></span> <span class="n">th</span><span class="p">{[]</span> <span class="p">{</span>
304304
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
305305
<span class="n">reader</span><span class="p">();</span>
306306
<span class="p">}</span>

reference/rcu/rcu_obj_base/retire.html

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-02-05T10:01:51">
204-
2025年02月05日 10時01分51秒
203+
<span itemprop="datePublished" content="2025-02-06T01:48:43">
204+
2025年02月06日 01時48分43秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -232,7 +232,12 @@
232232
<h2>概要</h2>
233233
<p>RCU機構により保護されるオブジェクト回収をスケジュールする。</p>
234234
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる">適格要件</a></h2>
235-
<p>クラステンプレートパラメータ<code>T</code>がRCU保護可能(rcu-protectable)な型であること。</p>
235+
<p>クラステンプレートパラメータ<code>T</code>が、下記条件を満たすRCU保護可能(rcu-protectable)な型であること。</p>
236+
<ul>
237+
<li><code>rcu_obj_base&lt;T,D&gt;</code>型を唯一の基底クラスとして持つクラス型であり、かつ</li>
238+
<li>その基底は公開(public)かつ非仮想基底クラスであり、かつ</li>
239+
<li><code>X</code>, <code>Y</code>の他の組合せに対して<code>rcu_obj_base&lt;X, Y&gt;</code>型を基底クラスとして持たない。</li>
240+
</ul>
236241
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a></h2>
237242
<ul>
238243
<li><code>*this</code>が型<code>T</code>のオブジェクト<code>x</code>の基底クラスサブオブジェクトであること。</li>
@@ -241,8 +246,8 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成
241246
</ul>
242247
<h2>効果</h2>
243248
<ul>
244-
<li><code>deleter = std::move(d)</code>を評価し、</li>
245-
<li>RCUドメイン<code>dom</code>に対して式<code>deleter(addressof(x))</code>の評価をスケジュールする。<ul>
249+
<li><code>deleter = <a href="../../utility/move.html">std::move</a>(d)</code>を評価し、</li>
250+
<li>RCUドメイン<code>dom</code>に対して式<code>deleter(<a href="../../memory/addressof.html">addressof</a>(x))</code>の評価をスケジュールする。<ul>
246251
<li>評価が<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>で終了した場合は<a class="cpprefjp-defined-word" data-desc="処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../../implementation-compliance.html#dfn-undefined-behavior">未定義の動作</a>を引き起こす。</li>
247252
</ul>
248253
</li>

0 commit comments

Comments
 (0)