about summary refs log tree commit diff
path: root/src/libcore/task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcore/task.rs')
-rw-r--r--src/libcore/task.rs7
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();