# Blocking-вызов на критическом executor

RuleID: concurrency.main-actor-blocking@1.0.0
Status: recovery-required
Catalog snapshot: 4558458d

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

## V-EXEC-09 — Blocking-вызов на критическом executor

Блокирующая операция занимает executor и мешает обслуживать другие задачи; на MainActor это проявляется зависанием UI.

Status: recovery-required

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

### Before (illustrative)

```swift
@MainActor func refresh() {
    Thread.sleep(forTimeInterval: 2)
}
```

### After (illustrative)

```swift
@MainActor func refresh() async throws {
    try await Task.sleep(for: .seconds(2))
}
```

Boundary: Await и короткая допустимая синхронизация сами по себе не blocking defect

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/concurrency.main-actor-blocking/
Source revision: 4558458d
