# Устаревший результат перезаписывает новое поколение

RuleID: concurrency.obsolete-generation-commit@1.0.0
Status: recovery-required
Catalog snapshot: 4558458d

Accepted subset is bounded. If required evidence is incomplete, the affected result is unknown.

## V-ASYNC-03 — Устаревший результат перезаписывает новое поколение

Ответ старого запроса может перезаписать результат нового, хотя оба обращения к памяти корректно изолированы.

Status: recovery-required

Scope notes: Source producer требует восстановления и квалификации. Если необходимые факты не получены, результат — unknown, а не «ошибки нет».

### Before (illustrative)

```swift
let result = await search(query)
state.results = result
```

### After (illustrative)

```swift
let revision = generation
let result = await search(query)
guard revision == generation else { return }
state.results = result
```

Boundary: Merge policy или generation guard; бизнес-политику не угадывать

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/concurrency.obsolete-generation-commit/
Source revision: 4558458d
