Size: a a a

2021 July 15

NK

Nikolay Kononov in supapro.cxx
после выполнения сетишь атомарный флаг в промисе? ну возьми сделай аналог через атомик флаг (они же так и работают) даже быстрее возможно получится сделать без аллокаций
источник

K

Kirill in supapro.cxx
Да, через промис
Я сомневаюсь что смогу сделать быстрее чем это сделано в std
источник

NK

Nikolay Kononov in supapro.cxx
сможешь
источник

NK

Nikolay Kononov in supapro.cxx
стд фьюча особо не нужна
источник

K

Kirill in supapro.cxx
Да и оно пока даже не тормозит... Но как начнёт - обязательно буду что-нибудь придумывать
источник

NK

Nikolay Kononov in supapro.cxx
там промис и фьюча хранят shared_ptr на блок с результатом и под локом его меняют, а ты можешь сделать лучше просто через атомарный флаг это и короче будет в итоге и без аллокаций и без локов
источник

K

Kirill in supapro.cxx
спасибо )
источник

K

Kirill in supapro.cxx
А что значит без локов? Предлагаешь busy-wait'ом ждать атомик?
источник

NK

Nikolay Kononov in supapro.cxx
нет ну всмысле нет локов для синхронизации самого Shared State-a, самый норм вариант наверное просто через кондвар сделать синхронизацию и все, если особенно задача хоть немного большая
источник

K

Kirill in supapro.cxx
А мне понравились промисы... Прямо как в JS, удобные
источник

NK

Nikolay Kononov in supapro.cxx
ну они будут лучше с новыми экзекьюторами
источник

NK

Nikolay Kononov in supapro.cxx
и добавлением via
источник

NK

Nikolay Kononov in supapro.cxx
sender auto s = just(3) |                                  // produce '3' immediately
               via(scheduler1) |                          // transition context
               then([](int a){return a+1;}) |             // chain continuation
               then([](int a){return a*2;}) |             // chain another continuation
               via(scheduler2) |                          // transition context
               handle_error([](auto e){return just(3);}); // with default value on errors
int r = sync_wait(s)
источник

K

Kirill in supapro.cxx
Неплохо, только перегруз | выглядит по уродски
источник

NK

Nikolay Kononov in supapro.cxx
ну в фолли подобное сделано просто через чейнинг и возврат *this
источник

NK

Nikolay Kononov in supapro.cxx
источник

K

Kirill in supapro.cxx
Спасибо, посмотрю )
источник

ПК

Побитый Кирпич... in supapro.cxx
std::async
источник

K

Kirill in supapro.cxx
Это ведь функция, которая возвращает фьючу
источник

ПК

Побитый Кирпич... in supapro.cxx
Это гораздо лучше выглядит через .
Тут больше уродский синтаксис лямбд не нравится
источник