add await_get and switch code to use it
[scpubgit/TenDotTcl.git] / ten / ten.tcl
index 3798233..a093a97 100644 (file)
@@ -197,6 +197,19 @@ snit::type ten::future {
     vwait "${selfns}::is_ready"
   }
 
+  method await_get {} {
+    $self retain
+    $self await_ready
+    if [$self is_failure] {
+      set err [$self failure]
+      $self free
+      error $err
+    }
+    set res [$self get]
+    $self free
+    return $res
+  }
+
   method retain {} {
     incr retain_count
   }