Size: a a a

cxx.Дискуссионная

2020 April 20

O

Ofee in cxx.Дискуссионная
Roy Mustang
1) Задача успешно выполнилась
2) Задача не выполнилась, остановилась на шаге N в связи с тем, что блок был недоступен так как был занят другим потоком
О, так ты же сейчас корутины описываешь
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Представим, задача не выполнилась до конца в связи с тем, что какие то общие контейнеры были заняты, то мы идем делать другую работу, а потом какой нибудь поток возьмет эту задачу что мы не выполнили и пойдет вызывать ее методы последовательно, в каждой функции нужно создать некие подразделы которые можно отслеживать по битовому полю, мы проверяем, для текущего региона кода бит выставлен в 1 или 0, если 1, то значит нам не нужно этот участок кода уже выполнять - выполняем goto к второй части и так до тех пор, пока не дойдем до задачи где бит в 0, значит там мы и остановились - продолжить выполнение
Ну точно корутины
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
О, так ты же сейчас корутины описываешь
Описываю, но способны ли они реализовать тоже что я сказал выше
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
А когда задача завершится - объект сам будет уничтожен и состояние задачи обнулится
Да неужели?)
источник

RM

Roy Mustang in cxx.Дискуссионная
только не забирая производительность
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
только не забирая производительность
Т.е. корутины таки?
источник

Е

Егор in cxx.Дискуссионная
мне Рой начинает создателя Интры напоминать
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
только не забирая производительность
И да, платить нужно за всё
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
И да, платить нужно за всё
Ожидание потока, пока другой выполнит свое дело - это тоже плата
источник

RM

Roy Mustang in cxx.Дискуссионная
И она скорее всего будет выше чем логика представленная выше
источник

RM

Roy Mustang in cxx.Дискуссионная
Корутины не потянут такую логику я думаю и обойдутся дороже в хранении и использовании
источник

RM

Roy Mustang in cxx.Дискуссионная
Здесь множество функции имеют состояние, и каждое подмножество множества функции точно так же хранят состояние
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Корутины не потянут такую логику я думаю и обойдутся дороже в хранении и использовании
@r_mustang у нас может лучше, чем разработчики компиляторов...
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Здесь множество функции имеют состояние, и каждое подмножество множества функции точно так же хранят состояние
Т.е. это, всё же, самые настоящие корутины?
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
Т.е. это, всё же, самые настоящие корутины?
У тебя стека не хватит на корутины
источник

RM

Roy Mustang in cxx.Дискуссионная
К тому же, где ты будешь хранить корутины?)
источник

RM

Roy Mustang in cxx.Дискуссионная
Их же хранить нужно
источник

RM

Roy Mustang in cxx.Дискуссионная
Ты же не будешь в каждой задаче помещать куда то лямбду
источник

RM

Roy Mustang in cxx.Дискуссионная
Так что это не корутины
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
У тебя стека не хватит на корутины
А на вызов функций хватит, конечно же?
источник