diff options
| author | Ben Blum <bblum@andrew.cmu.edu> | 2012-08-23 16:51:53 -0400 |
|---|---|---|
| committer | Ben Blum <bblum@andrew.cmu.edu> | 2012-08-25 03:07:30 -0400 |
| commit | 4cfb92f4598a6571523bce8b72188df559e2a2b3 (patch) | |
| tree | c1e23c0d351c7b39f885c2a78da9280a2bcae45e /src/libstd/sync.rs | |
| parent | 8d00603d782ee637fe9130b542fdee0c626b3810 (diff) | |
| download | rust-4cfb92f4598a6571523bce8b72188df559e2a2b3.tar.gz rust-4cfb92f4598a6571523bce8b72188df559e2a2b3.zip | |
Use region variance to remove a bunch of unsafety in sync/arc (#2282)
Diffstat (limited to 'src/libstd/sync.rs')
| -rw-r--r-- | src/libstd/sync.rs | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs index bdc25495050..5c8568b29b0 100644 --- a/src/libstd/sync.rs +++ b/src/libstd/sync.rs @@ -998,16 +998,12 @@ mod tests { write => x.write(blk), downgrade => do x.write_downgrade |mode| { - // FIXME(#2282) - let mode = unsafe { unsafe::transmute_region(&mode) }; - mode.write(blk); + (&mode).write(blk); }, downgrade_read => do x.write_downgrade |mode| { let mode = x.downgrade(mode); - // FIXME(#2282) - let mode = unsafe { unsafe::transmute_region(&mode) }; - mode.read(blk); + (&mode).read(blk); }, } } @@ -1152,9 +1148,7 @@ mod tests { fn lock_cond(x: &rwlock, downgrade: bool, blk: fn(c: &condvar)) { if downgrade { do x.write_downgrade |mode| { - // FIXME(#2282) - let mode = unsafe { unsafe::transmute_region(&mode) }; - mode.write_cond(blk) + (&mode).write_cond(blk) } } else { x.write_cond(blk) |
