Extract timer into variable so subscription doesn't get dropped.
diff --git a/src/timer.rs b/src/timer.rs
index 62da286..7a4bfaa 100644
--- a/src/timer.rs
+++ b/src/timer.rs
@@ -25,7 +25,8 @@
     let expired = Cell::new(false);
     let mut with_callback = with_callback(|_, _| expired.set(true));
 
-    with_callback.init().unwrap().set_alarm(duration).unwrap();
+    let mut timer = with_callback.init().unwrap();
+    timer.set_alarm(duration).unwrap();
 
     syscalls::yieldk_for(|| expired.get());
 }