cancellation будет вообще классно
хотя что он имел ввиду под cancellation я не понимаю. тут это больше из разряда, что теперь не просто Future, а какая-то FutureTask есть, которая, внутри себя же может себя отменить и все что она запустила
по сути Actor модель и процессы, и тут вопрос возникает, а точно ли это тогда к async/await относится?
но для такого надо хранить ссылки на родителя и всех детей своих. А такое поидеи в момент трансформации надо перепривязывать там где вызов await
ну а еще потом как-то обращаться к внутреннему Future, чтобы это считывать
Cancellation у фьюч обязательно надо, т.к. ты ждёшь чего-то, а в другом месте у тебя срабатывает логика что более этого ждать не надо (к примеру некое долгое чтение из сокета) и всё, ты никак это сейчас отменить не сможешь, т.к. чтение один хрен будет. Плюс там есть баги с таймером ровно с теми-же проблемами, ты никак не сможешь отменить ожидание таймера.
чистка ресурсов после отмены future, да но надо думать как это красиво делать и что ним в таком случае может, мне кажется самое просто это как в cps дать доступ до future родительского и там можно будет написать метод cancel который будет ходить вперед по детям и кенселить их, подчищая ресурсы
Обсуждают сегодня