tryAcquire method
Implementation
Object? tryAcquire({
required bool backupRunning,
required bool syncRunning,
required bool analyzing,
DateTime? now,
}) {
final currentTime = now ?? DateTime.now();
final activeToken = _activeToken;
if (activeToken != null) {
final startedAt = _startedAt;
final withinStartupGrace =
startedAt != null && currentTime.difference(startedAt) < startupGrace;
if (backupRunning || syncRunning || analyzing || withinStartupGrace) {
return null;
}
_activeToken = null;
_startedAt = null;
} else if (backupRunning || analyzing) {
return null;
}
final token = Object();
_activeToken = token;
_startedAt = currentTime;
return token;
}