# Continuation возобновляется повторно

RuleID: concurrency.double-continuation-resume@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-07 — Continuation возобновляется повторно

Continuation должна возобновляться ровно один раз. Конкурирующие success, timeout и cancellation легко нарушают это условие.

Status: recovery-required

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

### Before (illustrative)

```swift
api.onSuccess = { c.resume(returning: $0) }
timer.onFire = { c.resume(throwing: Timeout()) }
```

### After (illustrative)

```swift
// Оба события проходят через одну синхронизированную
// state machine: pending → completed ровно один раз.
```

Boundary: Два взаимоисключающих resume не ошибка

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/concurrency.double-continuation-resume/
Source revision: 4558458d
