Size: a a a

2020 July 31

DF

Dollar Føølish in supapro.cxx
Если бы стекфул были то прав был бы Денис
источник

DF

Dollar Føølish in supapro.cxx
То есть объекты бы жили
источник

ПК

Побитый Кирпич... in supapro.cxx
Побитый Кирпич
Ок, другой вариант:
awaitable<void> do_some(int& param) {
   foo();
   co_await bar();
   cout << param;
}

ЕМНИП тут будет UB, если то, на ссылается param будет уничтожено раньше cout << param;.
Скажи мне, такое может произойти в синхронном коде?
в синхронном коде тут всё норм, в асинхронном с корутинами - минус нога
источник

ПК

Побитый Кирпич... in supapro.cxx
хотя код выглядит как синхронный
источник

DF

Dollar Føølish in supapro.cxx
В расте для этого придумали пины
источник

DP

Denis Paukaev in supapro.cxx
Побитый Кирпич
в синхронном коде тут всё норм, в асинхронном с корутинами - минус нога
У тебя синхронный код, твой эвейтабл будет выполнен в момент co_await
источник

DP

Denis Paukaev in supapro.cxx
Так что все будет живым
источник

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
У тебя синхронный код, твой эвейтабл будет выполнен в момент co_await
Почему ты так считаешь?
источник

DP

Denis Paukaev in supapro.cxx
Побитый Кирпич
Почему ты так считаешь?
Какие ещё вариант, если у тебя один поток и co_await блокирует выполнения пока функция не будет выполнена?
источник

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
Какие ещё вариант, если у тебя один поток и co_await блокирует выполнения пока функция не будет выполнена?
co_await не блокирует выполнение, с чего ты это взял?
источник

DP

Denis Paukaev in supapro.cxx
То есть код после co_await сразу начинает выполняться, я верно понимаю ?
источник

ПК

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

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
То есть код после co_await сразу начинает выполняться, я верно понимаю ?
нет, он выполнится когда шедулер до него дойдёт, почти как с потоками
источник

DP

Denis Paukaev in supapro.cxx
Побитый Кирпич
нет, он выполнится когда шедулер до него дойдёт, почти как с потоками
Круто, я про это и написал
источник

DP

Denis Paukaev in supapro.cxx
Это блокирующий вызов для текущего кода
источник

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
Круто, я про это и написал
Только когда до сюда дойдёт шедулер param уже протузнет
источник

DP

Denis Paukaev in supapro.cxx
С чего бы
источник

ПК

Побитый Кирпич... in supapro.cxx
Denis Paukaev
Это блокирующий вызов для текущего кода
Тут нет блокировки. post неблокирующшая операция
источник

DP

Denis Paukaev in supapro.cxx
Если он переживает строку co_await то он жив
источник

DP

Denis Paukaev in supapro.cxx
Не ?)
источник