Skip to content

Commit 5c96a1b

Browse files
committed
Fix typo
1 parent ccc309d commit 5c96a1b

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

1.6/ja/book/choosing-your-guarantees.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ let x = RefCell::new(vec![1,2,3,4]);
373373
C++の `shared_ptr``Arc` と似ていますが、C++の場合、中身のデータは常にミュータブルです。
374374
C++と同じセマンティクスで使うためには、 `Arc<Mutex<T>>``Arc<RwLock<T>>``Arc<UnsafeCell<T>>` を使うべきです [^4]`UnsafeCell<T>` はどんなデータでも持つことができ、実行時のコストも掛かりませんが、それにアクセスするためには `unsafe` ブロックが必要というセル型です)。
375375
最後のものは、その使用がメモリをアンセーフにしないことを確信している場合にだけ使うべきです。
376-
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCall` を正当化するには十分ではありません。
376+
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCell` を正当化するには十分ではありません。
377377

378378
<!--[^4]: `Arc<UnsafeCell<T>>` actually won't compile since `UnsafeCell<T>` isn't `Send` or `Sync`, but we can wrap it in a type and implement `Send`/`Sync` for it manually to get `Arc<Wrapper<T>>` where `Wrapper` is `struct Wrapper<T>(UnsafeCell<T>)`.-->
379379
[^4]: `Arc<UnsafeCell<T>>``Send``Sync` ではないため、実際にはコンパイルできません。しかし、 `Arc<Wrapper<T>>` を得るために、手動でそれを `Send``Sync` を実装した型でラップすることができます。ここでの `Wrapper``struct Wrapper<T>(UnsafeCell<T>)` です。

1.9/ja/book/choosing-your-guarantees.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ let x = RefCell::new(vec![1,2,3,4]);
373373
C++の `shared_ptr``Arc` と似ていますが、C++の場合、中身のデータは常にミュータブルです。
374374
C++と同じセマンティクスで使うためには、 `Arc<Mutex<T>>``Arc<RwLock<T>>``Arc<UnsafeCell<T>>` を使うべきです [^4]`UnsafeCell<T>` はどんなデータでも持つことができ、実行時のコストも掛かりませんが、それにアクセスするためには `unsafe` ブロックが必要というセル型です)。
375375
最後のものは、その使用がメモリをアンセーフにしないことを確信している場合にだけ使うべきです。
376-
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCall` を正当化するには十分ではありません。
376+
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCell` を正当化するには十分ではありません。
377377

378378
<!--[^4]: `Arc<UnsafeCell<T>>` actually won't compile since `UnsafeCell<T>` isn't `Send` or `Sync`, but we can wrap it in a type and implement `Send`/`Sync` for it manually to get `Arc<Wrapper<T>>` where `Wrapper` is `struct Wrapper<T>(UnsafeCell<T>)`.-->
379379
[^4]: `Arc<UnsafeCell<T>>``Send``Sync` ではないため、実際にはコンパイルできません。しかし、 `Arc<Wrapper<T>>` を得るために、手動でそれを `Send``Sync` を実装した型でラップすることができます。ここでの `Wrapper``struct Wrapper<T>(UnsafeCell<T>)` です。

0 commit comments

Comments
 (0)