diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-07-14 19:39:53 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-07-15 10:07:29 -0700 |
| commit | ced8393f203fc661df7a5a0159a5edfd826eef12 (patch) | |
| tree | efc98dacc8ec300c63b2e3af1c7dd78f7f4bac5a /src/lib/task.rs | |
| parent | d9cc4cb81b91e5d1735ef6c14e181e41247c9314 (diff) | |
| download | rust-ced8393f203fc661df7a5a0159a5edfd826eef12.tar.gz rust-ced8393f203fc661df7a5a0159a5edfd826eef12.zip | |
Modify task::join to indicate how the task terminated
This involves sticking yet another field into the task structure
Diffstat (limited to 'src/lib/task.rs')
| -rw-r--r-- | src/lib/task.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/task.rs b/src/lib/task.rs index 90885f2ab46..64ab745e4b9 100644 --- a/src/lib/task.rs +++ b/src/lib/task.rs @@ -1,7 +1,7 @@ native "rust" mod rustrt { fn task_sleep(uint time_in_us); fn task_yield(); - fn task_join(task t); + fn task_join(task t) -> int; fn task_unsupervise(); fn pin_task(); fn unpin_task(); @@ -20,8 +20,16 @@ fn yield() { ret rustrt::task_yield(); } -fn join(task t) { - ret rustrt::task_join(t); +tag task_result { + tr_success; + tr_failure; +} + +fn join(task t) -> task_result { + alt (rustrt::task_join(t)) { + 0 { tr_success } + _ { tr_failure } + } } fn unsupervise() { |
