время, и в конце жизни структуры надо сделать какое-то действие по очистке. Действие довольно сложное (там async, Result и все такое) так что обычный drop() не подойдет. Но как гарантировать что эта очистка реально произошла, в рантайме или лучше в compile-time?
Владение отдать и заспавнить таску в бэкграунд, как вариант. Но тут смотреть надо
Ну если ты эвейтишь футуру дропа, то после эвейта она будет дропнутой
С резалтом сложнее, нужно будет обратно прокинуть его. Поэтому, это от контекста зависеть будет. Но я бы предпочел владение в футуру отдать, которая вернет Result. Что-то типа TryAsyncDrop
Сделай спавн блокинг в дропе
Дальше примитивами синхронизации, если потоков несколько сообщаешь о дропах другим
Хм, может так поможет. Подумаю, спасибо
А че даст спавн блокинг, он позволит только разблокировать поток, если есть блокирующий синхронный код, при чем тут гарантии дропа?
Есть drop_bomb. Правда там рантайм чек только
Обсуждают сегодня