diff options
| author | Jeff Olson <olson.jeffery@gmail.com> | 2012-08-28 06:43:58 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-09-08 14:22:15 -0700 |
| commit | 27129c6aba153299100887de5c8643cbe3e9b8ef (patch) | |
| tree | 839ba16a4951b31b64d85989425a1fcd69002ff3 /src/libcore | |
| parent | 6bdda1e0de6097c1647ac49da8b24e86dd5299b8 (diff) | |
core/std: finish making futures sendable + test.. still issues
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/future.rs | 16 | ||||
| -rw-r--r-- | src/libcore/task.rs | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/libcore/future.rs b/src/libcore/future.rs index 141fafcf7d7..82deaf89537 100644 --- a/src/libcore/future.rs +++ b/src/libcore/future.rs @@ -37,7 +37,7 @@ struct Future<A> { } priv enum FutureState<A> { - Pending(fn@() -> A), + Pending(fn~() -> A), Evaluating, Forced(A) } @@ -93,7 +93,7 @@ fn from_port<A:Send>(+port: future_pipe::client::waiting<A>) -> Future<A> { } } -fn from_fn<A>(+f: @fn() -> A) -> Future<A> { +fn from_fn<A>(+f: ~fn() -> A) -> Future<A> { /*! * Create a future from a function. * @@ -239,4 +239,14 @@ mod test { let f = spawn(|| fail); let _x: ~str = get(&f); } -} \ No newline at end of file + + #[test] + fn test_sendable_future() { + let expected = ~"schlorf"; + let f = do spawn |copy expected| { expected }; + do task::spawn { + let actual = get(&f); + assert actual == expected; + } + } +} diff --git a/src/libcore/task.rs b/src/libcore/task.rs index cecc7a51ea7..3b1f9d8f845 100644 --- a/src/libcore/task.rs +++ b/src/libcore/task.rs @@ -1754,7 +1754,7 @@ fn test_spawn_linked_sup_fail_down() { // parent fails; child fails opts.supervised = true; move opts }; - + let b0 = task(); let b1 = TaskBuilder({ opts: move opts, |
