feat: reserve downloads and protect slot cleanup

This commit is contained in:
Media
2026-08-06 17:34:11 -05:00
parent 3ff9ba4637
commit 45083207b4
3 changed files with 611 additions and 0 deletions
+17
View File
@@ -1195,6 +1195,23 @@ class ControllerStore:
)
return True
def pending_deletions(self) -> list[DeleteToken]:
with self._lock:
rows = self.connection.execute(
"""
SELECT slot_number, generation FROM slots
WHERE media_state = 'deleting' ORDER BY slot_number
"""
).fetchall()
return [
DeleteToken(
slot=row["slot_number"],
generation=row["generation"],
reason="recovered_interrupted_deletion",
)
for row in rows
]
def begin_expired_deletions(self, now: float | None = None) -> list[DeleteToken]:
now = self._now() if now is None else now
tokens: list[DeleteToken] = []