about summary refs log tree commit homepage
path: root/lib/upr/monitor.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/upr/monitor.rb')
-rw-r--r--lib/upr/monitor.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/upr/monitor.rb b/lib/upr/monitor.rb
index 2ccb447..bcf3f03 100644
--- a/lib/upr/monitor.rb
+++ b/lib/upr/monitor.rb
@@ -27,22 +27,27 @@ module Upr
     end
 
     def read(upid)
-      moneta.update_key(upid, OPT)
       moneta[upid]
     end
 
     def incr(upid, nr)
-      status = moneta[upid]
-      status.seen += nr
+      status = moneta[upid] or return
+      status.seen += nr if status.seen >= 0
       moneta.store(upid, status, OPT)
     end
 
     def finish(upid)
-      status = moneta[upid]
+      status = moneta[upid] or return
       status.length ||= status.seen
       status.seen = status.length
       moneta.store(upid, status, OPT)
     end
 
+    def error!(upid)
+      status = moneta[upid] or return
+      status.seen = -1
+      moneta.store(upid, status, OPT)
+    end
+
   end
 end