# Цикл ожиданий блокирует обязательных producers

RuleID: concurrency.sole-producer-self-block@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-15 — Цикл ожиданий блокирует обязательных producers

Цикл ожиданий делает прогресс невозможным: каждый участник ждёт события, которое может произвести только другой участник цикла.

Status: recovery-required

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

### Before (illustrative)

```swift
// A ждёт B.done.
// B ждёт A.done.
// Иного producer нет.
```

### After (illustrative)

```swift
// Выбрать одного инициатора.
// Разорвать зависимость или объединить протокол завершения.
```

Boundary: Callgraph SCC и A→B→A через await сами по себе не deadlock

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/concurrency.sole-producer-self-block/
Source revision: 4558458d
