Skip to content

Commit

Permalink
atomic: wait系関数の事前条件を整理
Browse files Browse the repository at this point in the history
  • Loading branch information
yohhoy committed Jan 22, 2025
1 parent 70e3b76 commit afdc031
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 13 deletions.
7 changes: 7 additions & 0 deletions reference/atomic/atomic/wait.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ constexpr void
- C++20 : `atomic<T>::is_always_lock_free`が`true`であること
## 事前条件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 効果
- 以下のステップを順に繰り返し実行する:
- [`load`](load.md)`(order)`によって現在の値を読み込み、`old`と値を比較する
Expand Down
7 changes: 7 additions & 0 deletions reference/atomic/atomic_flag/wait.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ constexpr void
この関数によってブロッキング待機をしたら、対応する起床関数である[`notify_one()`](notify_one.md)、[`notify_all()`](notify_all.md)によってブロッキング待機を解除できる。
## 事前条件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 効果
- 以下のステップを順に繰り返し実行する:
- 式[`test`](test.md)`(order) != old`を評価する
Expand Down
7 changes: 0 additions & 7 deletions reference/atomic/atomic_flag_test.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,6 @@ namespace std {
現在の値を`bool`値として取得する。
## 要件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 戻り値
アトミックに読み込まれた`*this`が指している値を返す
Expand Down
2 changes: 1 addition & 1 deletion reference/atomic/atomic_flag_test_explicit.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace std {
現在の値を`bool`値として取得する。
## 要件
## 事前条件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
Expand Down
7 changes: 7 additions & 0 deletions reference/atomic/atomic_flag_wait_explicit.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ namespace std {
この関数によってブロッキング待機をしたら、対応する起床関数である[`atomic_flag_notify_one()`](atomic_flag_notify_one.md)、[`atomic_flag_notify_all()`](atomic_flag_notify_all.md)によってブロッキング待機を解除できる。
## 事前条件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 効果
- 以下のステップを順に繰り返し実行する:
- 式[`atomic_flag_test_explicit`](atomic_flag_test_explicit.md)`(object, order) != old`を評価する
Expand Down
9 changes: 4 additions & 5 deletions reference/atomic/atomic_ref/wait.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,10 @@ constexpr void
## 事前条件
- `order`が以下のいずれかであること:
- [`memory_order::relaxed`](/reference/atomic/memory_order.md)
- [`memory_order::consume`](/reference/atomic/memory_order.md)
- [`memory_order::acquire`](/reference/atomic/memory_order.md)
- [`memory_order::seq_cst`](/reference/atomic/memory_order.md)
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 効果
Expand Down
7 changes: 7 additions & 0 deletions reference/atomic/atomic_wait_explicit.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ namespace std {
- (1) : `atomic<T>::is_always_lock_free`が`true`であること
## 事前条件
`order`が以下のメモリオーダーではないこと:
- [`memory_order_release`](/reference/atomic/memory_order.md)
- [`memory_order_acq_rel`](/reference/atomic/memory_order.md)
## 効果
- 以下のステップを順に繰り返し実行する:
- [`atomic_load_explicit`](atomic_load_explicit.md)`(object, order)`によって現在の値を読み込み、`old`と値を比較する
Expand Down

0 comments on commit afdc031

Please sign in to comment.