170 похожих чатов

Давайте я проще напишу: Есть функция, мы запустили в ней асинхронную

операцию в которой есть коллбек, все функция завершилась асинхронная операция пошла работать дальше, выполнилась, выполнился коллбек, пошло все работать дальше
--
корутины:
есть функция, запустили в ней co_await после чего запустили коллбек, и вот тут проблема - останавливается выполнение всего контекста, как бы мы это делали в синхронном режиме:

void async_func() {
std::async(std::launch::async, []() {
some_func();
callback();
}
}

int main() {
async_func();
}
Тут неблокируется функция и все норм идет дальше
А вот так
Task coro_func() {
co_await some_func();
callback();
}

int main() {
coro_func();
}
пока callback не выполнится контекст дальше coro_func не выполняется, как будто мы вызвали функцию в синхронном режиме - это нормальное поведение? и как все-таки использовать это асинхронно?

5 ответов

10 просмотров

Антон Полухин как-то давно писал https://m.habr.com/ru/company/yandex/blog/420861/ думаю, что и вашу задачу можно решить схожим образом, если конечно актуально.

Alexander-Malkov Автор вопроса
Nik Vzdornov
Антон Полухин как-то давно писал https://m.habr.co...

Проблема в том, что мне в awaitable пришлось все равно создавать поток, чтобы корутину запускать асинхронно

Alexander Malkov
Проблема в том, что мне в awaitable пришлось все р...

Ты не сможешь запустить операцию асинхронно если у тебя нет асинхронного апи (WriteFile + OVERLAPPED на винде), либо нет другого потока.

Nik Vzdornov
Антон Полухин как-то давно писал https://m.habr.co...

Статья, имхо, не очень, я в неё очень долго въезжал, в итоге нашёл статью в каком-то блоге на англ и только тогда стало яснее

disba1ancer
Статья, имхо, не очень, я в неё очень долго въезжа...

))) ок, поделитесь тогда, не будет лишним ещё одно мнение узнать

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
61
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Карта сайта