!7 cmodule whatever { transient SimpleLiveValue lvStatus = stringLiveValue(); int max = 1024; visual jCenteredLiveValueLabel(lvStatus); start { doEveryAndNow(30000, r checkIt); } void checkIt enter { long megabytes = oshi_currentProcessResidentSize()/oneMegabyte(); lvStatus.set("Emergency restart enabled. Memory use: " + megabytes + "/" + max + " MB"); if (megabytes >= max) { localMechLog("Emergency shutdowns", "Emergency shutdown at " + localDateWithSeconds() + " because of too much memory use ("+ megabytes + " MB)"); dm_restartOS(); } } }