diff options
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(); |
