diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-21 21:30:16 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-21 21:30:16 -0700 |
| commit | fee78d296c66e0b10600c7fefbbe07f33406fe97 (patch) | |
| tree | da76576b422f5bd82cc091576a9f15fdab95563d /src/libcore/task.rs | |
| parent | b8710de5fffdc45c19ccc27ad8ed98c1ee51c025 (diff) | |
Port resources to classes in libcore
Diffstat (limited to 'src/libcore/task.rs')
| -rw-r--r-- | src/libcore/task.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libcore/task.rs b/src/libcore/task.rs index ab9b4f7d3d7..2a746d76127 100644 --- a/src/libcore/task.rs +++ b/src/libcore/task.rs @@ -482,9 +482,12 @@ Temporarily make the task unkillable "] unsafe fn unkillable(f: fn()) { - resource allow_failure(_i: ()) { - rustrt::rust_task_allow_kill(); + class allow_failure { + let i: (); // since a class must have at least one field + new(_i: ()) { self.i = (); } + drop { rustrt::rust_task_allow_kill(); } } + let _allow_failure = allow_failure(()); rustrt::rust_task_inhibit_kill(); f(); |
