Перейти до вмісту
Помилки компілятора RustПомилка
E0277

E0277 — Тип не реалізує Send

Тип, що не реалізує Send, використовується в контексті, який вимагає потокобезпечності.

rustcargo

Що спричиняє цю помилку

Ви намагаєтеся передати тип, що не є Send, через межі потоків (spawn, async-задачі). Типи, що містять Rc, Cell або сирі вказівники, не є Send, оскільки вони не є потокобезпечними.

Як виправити

Використовуйте Arc замість Rc для спільного володіння між потоками. Використовуйте Mutex або RwLock для мутабельного доступу. Переконайтеся, що всі типи всередині структури реалізують Send. Використовуйте thread-local storage для типів, що не є Send.

Офіційна документація

Пов'язані коди помилок