On Thursday, 2020-08-27 at 17:34:13 +08, Zheng Chuan wrote: >>> + /* >>> + * Only support query once for each calculation, >>> + * reset as DIRTY_RATE_STATUS_UNSTARTED after query >>> + */ >>> + (void)dirtyrate_set_state(&CalculatingState, CalculatingState, >>> + DIRTY_RATE_STATUS_UNSTARTED); >> >> Is there a reason for this restriction? Removing it would require >> clarifying the state model, I suppose. >> > We only support query once for each calculation. > Otherwise, it could always query dirtyrate, but maybe the dirtyrate is > calculated > long time ago.
There's nothing in the current interface that prevents this from being the case already - the caller could initiate a 1 second sample, then wait 24 hours to query the result. Obviously this would generally be regarded as "d'oh - don't do that", but the same argument would apply if the caller is allowed to query the results multiple times. Perhaps a complete solution would be to include information about the sample period with the result. The caller could then determine whether the sample is of adequate quality (sufficiently recent, taken over a sufficiently long time period) for its' intended use. dme. -- I walk like a building, I never get wet.