есть async/await, и он делает именно то, что ты хочешь, причём без UB и в максимально оптимизированном виде. По каким причинам ты его не можешь использовать?
ну.. надо мне сделать футуру. Крайне долго объснять и сравнивать. Если асинц по парадигме близок к процедурной, то моя к конечным автоматам, т.е. гото возможен, который удобен для поведения роботов и роботов в игре(ну т.е. ботов) и многого другого кода, который часто сталкивается с проблемами. Ну и вообще STM для работы с данными. Вот внутри STM асинц/евейт, т.к. там моделирование "однопоточного мира".
Да, окей, стейт машины — это удобно. Но зачем для этого писать ансейф? Большая часть оптимизаций достигается без ансейфа, тупо через repr(C), а потом компилятор тебе сам заоптимизирует перемещение байтиков. Просто пихаешь стейты в обычный enum, мувы делаешь просто как мувы. Соптимизируется компилятором в замену на месте — круто. Не соптимизируется — ну, бывает, пора думать про unsafe тогда, если основная проблема перформанса именно в перемещении байтов.
Обсуждают сегодня