sclass TimeoutException_Inner extends RuntimeExceptionWithCustomStackTrace { Thread thread; double timeoutSeconds; O function; *(double *timeoutSeconds, O *function, Thread *thread) { super("Timeout after " + iceil(timeoutSeconds) + "s by " + shorten_str(function), new Throwable("Caller"), thread.getStackTrace()); } }