# Синхронный callback повторно входит в незавершённый протокол

RuleID: portfolio.async.19@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-19 — Синхронный callback повторно входит в незавершённый протокол

Callback может быть синхронным и повторно войти в объект до завершения инициализации или регистрации операции.

Status: recovery-required

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

### Before (illustrative)

```swift
handle = api.start {
    finishUsing(handle)
}
```

### After (illustrative)

```swift
// Состояние registering установлено до start.
// Синхронный callback допустим в этой фазе.
// Handle присоединяется отдельным согласованным переходом.
```

Boundary: Reentrant-safe контракт, recursive lock либо callback вне critical section

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/portfolio.async.19/
Source revision: 4558458d
