Size: a a a

2021 February 19

EP

Egor Pugin in dlang.ru
да, я вот запустил несколько тредов, работает
источник

EP

Egor Pugin in dlang.ru
так что всё ок
источник

ГК

Глеб Куликов... in dlang.ru
короче, детали реализации
источник

EP

Egor Pugin in dlang.ru
да не, если так можно, значит, это общее свойство
источник

ГК

Глеб Куликов... in dlang.ru
Egor Pugin
да не, если так можно, значит, это общее свойство
вряд-ли. в стеклесс, наверное, можно. в стекфулл... ну, не знаю. сомнительно.
источник

EP

Egor Pugin in dlang.ru
ну сейчас про стаклес речь
источник

EP

Egor Pugin in dlang.ru
это как раз обычный объект, ничего хитрого для внешнего наблюдателя нет
источник

ГК

Глеб Куликов... in dlang.ru
Egor Pugin
это как раз обычный объект, ничего хитрого для внешнего наблюдателя нет
не совсем понимаю. вот смотри. была f1(), внутри выполнили  корутину c1, заморозили (yeild), теперь из f1 переместили c1 в другой тред. Произошла разморозка, но стек (да, конечно, внешний по отношению к корутине) теперь != существовавшему на момент заморозки. а на стеке — контест объемлющей f1(). что-то нехорошее получится
источник

EP

Egor Pugin in dlang.ru
Глеб Куликов
не совсем понимаю. вот смотри. была f1(), внутри выполнили  корутину c1, заморозили (yeild), теперь из f1 переместили c1 в другой тред. Произошла разморозка, но стек (да, конечно, внешний по отношению к корутине) теперь != существовавшему на момент заморозки. а на стеке — контест объемлющей f1(). что-то нехорошее получится
как я понял, объекты корутин (c1) хранятся в управляющем коде до их уничтожения, поэтому мы их можем продолжать в любом потоке. Контексты и стеки вызывающих функций тут не особо играют роли, не относятся к делу.
источник

И

Игорь in dlang.ru
в D контекст файбера это его стек, он хранится в куче
источник

И

Игорь in dlang.ru
и туда же засовываются захваченные переменные насколько я понимаю
источник

Е

Евгений in dlang.ru
Игорь
и туда же засовываются захваченные переменные насколько я понимаю
Захваченные переменные засовываются в кучу, а ссылки на них уже в стек
источник

SG

Serg Gini in dlang.ru
А нам это всё важно из-за GC?)
источник

И

Игорь in dlang.ru
Евгений
Захваченные переменные засовываются в кучу, а ссылки на них уже в стек
возможно. я думал они под фрейм самого файбера подкладываются
источник

SG

Serg Gini in dlang.ru
Или какая разница вообще в стек или кучу? *time for noob questions*
источник

И

Игорь in dlang.ru
если в кучу то время жизни файбера не ограничено
источник

И

Игорь in dlang.ru
если в стек - то ограничена временем жизни создателя
источник

ГК

Глеб Куликов... in dlang.ru
источник

Е

Евгений in dlang.ru
Игорь
возможно. я думал они под фрейм самого файбера подкладываются
Можно при желании в стек засунуть, но файбер ничего не знает о том, что захватила лямбда, которую ему дали.
источник

И

Игорь in dlang.ru
Евгений
Можно при желании в стек засунуть, но файбер ничего не знает о том, что захватила лямбда, которую ему дали.
а разве это не компайлера работа - настроить эти связи правильно
источник