!752 static volatile long startedWatching, endedWatching; static volatile double currentValue, lastValue; static volatile double minValue = Double.MAX_VALUE, maxValue = Double.MIN_VALUE; static volatile double avgSum, deltaAvgSum; static volatile long avgCount, deltaAvgCount; static volatile long maxRuntime; static volatile long n; static volatile boolean actuallyEnded; p { thread { print("Started watching."); startedWatching = now(); while (licensed()) { ++n; endedWatching = now(); currentValue = callIt(); long runtime = now()-endedWatching; if (n > 1) { deltaAvgSum += currentValue-lastValue; deltaAvgCount++; } lastValue = currentValue; if (runtime > maxRuntime) maxRuntime = runtime; if (currentValue < minValue) minValue = currentValue; if (currentValue > maxValue) maxValue = currentValue; avgCount++; avgSum += currentValue; sleepSeconds(1); // TODO: sleep until specific time } print("Done watching."); actuallyEnded = true; } } static double callIt() { ret unixTime(); } static S html() { new L l; for (S field : listFields(getMainClass())) { S value = "(Error getting value)"; pcall { value = structure(get(getMainClass(), field)); } l.add(litmap("Field", field, "Value", value)); } ret "

Variables

" + htmlTable(l); }