incId method
The same as getId but increments counter instead of using random value.
Counter resets to zero each millisecond, blocks reaching randomValues.
Use await incIdAsync()
if hot loop for less than 1 millisecond burns.
Implementation
int incId() {
while (true) {
final millis = DateTime.now().millisecondsSinceEpoch - _firstYearMillis;
if (_previousMillis != millis) {
_counter = 0;
_previousMillis = millis;
}
if (_counter >= randomValues) continue; // `sleep` is N/A on web platform.
return millis * randomValues + _counter++;
}
}