File tree 1 file changed +15
-4
lines changed
1 file changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -1173,10 +1173,7 @@ For a more in-depth explanation of borrowed pointers, read the
1173
1173
## Freezing
1174
1174
1175
1175
Borrowing an immutable pointer to an object freezes it and prevents mutation.
1176
- `Owned` objects have freezing enforced statically at compile-time. Mutable
1177
- managed boxes handle freezing dynamically when any of their contents are
1178
- borrowed, and the task will fail if an attempt to modify them is made while
1179
- they are frozen.
1176
+ `Owned` objects have freezing enforced statically at compile-time.
1180
1177
1181
1178
~~~~
1182
1179
let mut x = 5;
@@ -1186,6 +1183,20 @@ let mut x = 5;
1186
1183
// x is now unfrozen again
1187
1184
~~~~
1188
1185
1186
+ Mutable managed boxes handle freezing dynamically when any of their contents
1187
+ are borrowed, and the task will fail if an attempt to modify them is made while
1188
+ they are frozen:
1189
+
1190
+ ~~~~
1191
+ let x = @mut 5;
1192
+ let y = x;
1193
+ {
1194
+ let y = &*y; // the managed box is now frozen
1195
+ // modifying it through x or y will cause a task failure
1196
+ }
1197
+ // the box is now unfrozen again
1198
+ ~~~~
1199
+
1189
1200
# Dereferencing pointers
1190
1201
1191
1202
Rust uses the unary star operator (`*`) to access the contents of a
You can’t perform that action at this time.
0 commit comments