diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-09-04 17:22:09 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-09-04 17:27:03 -0700 |
| commit | eb0cf3a715cad7d0ad6d2407499356ae9dffaa7d (patch) | |
| tree | 9e10313302bbba7e39886fb3710944ffc0ec0cc5 /src/libstd/sync.rs | |
| parent | 268850f67b8e535dca2a8f29c717eafb4bd54e13 (diff) | |
std: Remove struct ctors
Diffstat (limited to 'src/libstd/sync.rs')
| -rw-r--r-- | src/libstd/sync.rs | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs index d11c3419f7a..2149d179b97 100644 --- a/src/libstd/sync.rs +++ b/src/libstd/sync.rs @@ -154,16 +154,28 @@ impl &Sem<~[mut Waitqueue]> { #[doc(hidden)] struct SemRelease { sem: &Sem<()>; - new(sem: &Sem<()>) { self.sem = sem; } drop { self.sem.release(); } } + +fn SemRelease(sem: &r/Sem<()>) -> SemRelease/&r { + SemRelease { + sem: sem + } +} + #[doc(hidden)] struct SemAndSignalRelease { sem: &Sem<~[mut Waitqueue]>; - new(sem: &Sem<~[mut Waitqueue]>) { self.sem = sem; } drop { self.sem.release(); } } +fn SemAndSignalRelease(sem: &r/Sem<~[mut Waitqueue]>) + -> SemAndSignalRelease/&r { + SemAndSignalRelease { + sem: sem + } +} + /// A mechanism for atomic-unlock-and-deschedule blocking and signalling. struct Condvar { priv sem: &Sem<~[mut Waitqueue]>; drop { } } @@ -234,7 +246,6 @@ impl &Condvar { // bounded in when it gets released, this shouldn't hang forever. struct SemAndSignalReacquire { sem: &Sem<~[mut Waitqueue]>; - new(sem: &Sem<~[mut Waitqueue]>) { self.sem = sem; } drop unsafe { // Needs to succeed, instead of itself dying. do task::unkillable { @@ -242,6 +253,14 @@ impl &Condvar { } } } + + fn SemAndSignalReacquire(sem: &r/Sem<~[mut Waitqueue]>) + -> SemAndSignalReacquire/&r { + SemAndSignalReacquire { + sem: sem + } + } + } /// Wake up a blocked task. Returns false if there was no blocked task. @@ -567,7 +586,6 @@ impl &RWlock { #[doc(hidden)] struct RWlockReleaseRead { lock: &RWlock; - new(lock: &RWlock) { self.lock = lock; } drop unsafe { do task::unkillable { let mut last_reader = false; @@ -587,11 +605,16 @@ struct RWlockReleaseRead { } } +fn RWlockReleaseRead(lock: &r/RWlock) -> RWlockReleaseRead/&r { + RWlockReleaseRead { + lock: lock + } +} + // FIXME(#3136) should go inside of downgrade() #[doc(hidden)] struct RWlockReleaseDowngrade { lock: &RWlock; - new(lock: &RWlock) { self.lock = lock; } drop unsafe { do task::unkillable { let mut writer_or_last_reader = false; @@ -618,6 +641,12 @@ struct RWlockReleaseDowngrade { } } +fn RWlockReleaseDowngrade(lock: &r/RWlock) -> RWlockReleaseDowngrade/&r { + RWlockReleaseDowngrade { + lock: lock + } +} + /// The "write permission" token used for rwlock.write_downgrade(). struct RWlockWriteMode { /* priv */ lock: &RWlock; drop { } } /// The "read permission" token used for rwlock.write_downgrade(). @@ -929,9 +958,14 @@ mod tests { } struct SendOnFailure { c: pipes::Chan<()>; - new(+c: pipes::Chan<()>) { self.c = c; } drop { self.c.send(()); } } + + fn SendOnFailure(+c: pipes::Chan<()>) -> SendOnFailure { + SendOnFailure { + c: c + } + } } #[test] fn test_mutex_cond_signal_on_0() { |
