about summary refs log tree commit diff
path: root/src/libcore/task.rs
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-06-21 21:30:16 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-06-21 21:30:16 -0700
commitfee78d296c66e0b10600c7fefbbe07f33406fe97 (patch)
treeda76576b422f5bd82cc091576a9f15fdab95563d /src/libcore/task.rs
parentb8710de5fffdc45c19ccc27ad8ed98c1ee51c025 (diff)
Port resources to classes in libcore
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();