+ new_d = now - starttimes[i];
+ if (new_d > max_distances[idx])
+ max_distances[idx] = new_d;
+
+#if MEASUREMENT_SHIFT > 0
+ old_d = distances[idx];
+
+ if (old_d == 0
+ || old_d == -1) {
+ distances[idx] = new_d;
+ } else {
+ distances[idx] = (
+ (old_d << MEASUREMENT_SHIFT)
+ + new_d
+ - old_d
+ ) >> MEASUREMENT_SHIFT;
+ }
+#else
+ distances[idx] = new_d;
+#endif