Skip to content

Commit afdc031

Browse files
committed
atomic: wait系関数の事前条件を整理
1 parent 70e3b76 commit afdc031

File tree

7 files changed

+33
-13
lines changed

7 files changed

+33
-13
lines changed

reference/atomic/atomic/wait.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ constexpr void
3535
- C++20 : `atomic<T>::is_always_lock_free`が`true`であること
3636
3737
38+
## 事前条件
39+
`order`が以下のメモリオーダーではないこと:
40+
41+
- [`memory_order_release`](/reference/atomic/memory_order.md)
42+
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
43+
44+
3845
## 効果
3946
- 以下のステップを順に繰り返し実行する:
4047
- [`load`](load.md)`(order)`によって現在の値を読み込み、`old`と値を比較する

reference/atomic/atomic_flag/wait.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ constexpr void
3030
この関数によってブロッキング待機をしたら、対応する起床関数である[`notify_one()`](notify_one.md)、[`notify_all()`](notify_all.md)によってブロッキング待機を解除できる。
3131
3232
33+
## 事前条件
34+
`order`が以下のメモリオーダーではないこと:
35+
36+
- [`memory_order_release`](/reference/atomic/memory_order.md)
37+
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
38+
39+
3340
## 効果
3441
- 以下のステップを順に繰り返し実行する:
3542
- 式[`test`](test.md)`(order) != old`を評価する

reference/atomic/atomic_flag_test.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,6 @@ namespace std {
2020
現在の値を`bool`値として取得する。
2121
2222
23-
## 要件
24-
`order`が以下のメモリオーダーではないこと:
25-
26-
- [`memory_order_release`](/reference/atomic/memory_order.md)
27-
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
28-
29-
3023
## 戻り値
3124
アトミックに読み込まれた`*this`が指している値を返す
3225

reference/atomic/atomic_flag_test_explicit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace std {
2424
現在の値を`bool`値として取得する。
2525
2626
27-
## 要件
27+
## 事前条件
2828
`order`が以下のメモリオーダーではないこと:
2929
3030
- [`memory_order_release`](/reference/atomic/memory_order.md)

reference/atomic/atomic_flag_wait_explicit.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ namespace std {
3333
この関数によってブロッキング待機をしたら、対応する起床関数である[`atomic_flag_notify_one()`](atomic_flag_notify_one.md)、[`atomic_flag_notify_all()`](atomic_flag_notify_all.md)によってブロッキング待機を解除できる。
3434
3535
36+
## 事前条件
37+
`order`が以下のメモリオーダーではないこと:
38+
39+
- [`memory_order_release`](/reference/atomic/memory_order.md)
40+
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
41+
42+
3643
## 効果
3744
- 以下のステップを順に繰り返し実行する:
3845
- 式[`atomic_flag_test_explicit`](atomic_flag_test_explicit.md)`(object, order) != old`を評価する

reference/atomic/atomic_ref/wait.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ constexpr void
2424
2525
2626
## 事前条件
27-
- `order`が以下のいずれかであること:
28-
- [`memory_order::relaxed`](/reference/atomic/memory_order.md)
29-
- [`memory_order::consume`](/reference/atomic/memory_order.md)
30-
- [`memory_order::acquire`](/reference/atomic/memory_order.md)
31-
- [`memory_order::seq_cst`](/reference/atomic/memory_order.md)
27+
`order`が以下のメモリオーダーではないこと:
28+
29+
- [`memory_order_release`](/reference/atomic/memory_order.md)
30+
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
3231
3332
3433
## 効果

reference/atomic/atomic_wait_explicit.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ namespace std {
3737
- (1) : `atomic<T>::is_always_lock_free`が`true`であること
3838
3939
40+
## 事前条件
41+
`order`が以下のメモリオーダーではないこと:
42+
43+
- [`memory_order_release`](/reference/atomic/memory_order.md)
44+
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
45+
46+
4047
## 効果
4148
- 以下のステップを順に繰り返し実行する:
4249
- [`atomic_load_explicit`](atomic_load_explicit.md)`(object, order)`によって現在の値を読み込み、`old`と値を比較する

0 commit comments

Comments
 (0)