/** * */ package net.varkhan.base.management.metric; /** * <b>.</b> * <p/> * * @author varkhan * @date Nov 25, 2010 * @time 8:27:31 PM */ public class ExactTimer implements Timer { private final Time time; private volatile long start; private volatile long stop; public ExactTimer(Time time) { this.time=time; } public void reset() { long curr=time.time(); stop=curr; start=curr; } public void start() { if(start<=stop) { long curr=time.time(); long delta=curr-stop; stop=start-1; start+=delta; } } public void stop() { stop=time.time(); } public long time() { return time.time()-start; } }