# Cancellation теряется между registration и start

RuleID: concurrency.cancel-register-start-race@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-08 — Cancellation теряется между registration и start

Отмена может прийти до регистрации handle. Если её обработчик видит nil, операция позже запустится без возможности отмены.

Status: recovery-required

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

### Before (illustrative)

```swift
// onCancel: handle?.cancel()
// operation: handle = startRequest()
```

### After (illustrative)

```swift
// state machine хранит pending cancellation.
// Поздно зарегистрированный handle сразу отменяется.
```

Boundary: Корректный one-shot automaton и recheck

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/concurrency.cancel-register-start-race/
Source revision: 4558458d
