public final void checkpoint(String name, int additionalFlag) {\r
TimeTaken tt = newTimeTaken(name,CHECKPOINT|additionalFlag);\r
trail.add(tt);\r
- tt.done();\r
}\r
\r
@Override\r
// If first entry is sub, then it's actually the last "end" as well\r
// otherwise, check end\r
//long end = (first.flag&SUB)==SUB?first.end():trail.get(last).end();\r
- long end = trail.get(last).end();\r
+ long end = 0L;\r
+ for(int i=last;end==0L && i>=0;--i) {\r
+ end= trail.get(i).end();\r
+ }\r
metric.total = (end - first.start) / 1000000f;\r
+ } else {\r
+ metric.total=0L;\r
}\r
\r
if (sb==null) {\r
for (int i=0;i<indent;++i) {\r
sb.append(" ");\r
}\r
+ if((tt.flag & CHECKPOINT)==CHECKPOINT) {\r
+ // Checkpoint\r
+ sb.append(" ");\r
+ } else {\r
+ float ms=tt.millis();\r
+ // Add time values to Metric\r
+ for (int i=0;i<flags.length;++i) {\r
+ if ((tt.flag & flags[i]) == flags[i]) {\r
+ metric.buckets[i]+=ms;\r
+ }\r
+ }\r
+ }\r
tt.output(sb);\r
sb.append('\n');\r
if ((tt.flag&SUB)==SUB) {\r
++indent;\r
}\r
\r
- // Add time values to Metric\r
- float ms = tt.millis();\r
- for (int i=0;i<flags.length;++i) {\r
- if (tt.flag == flags[i]) metric.buckets[i]+=ms;\r
- }\r
}\r
}\r
return metric;\r