Size: a a a

2020 April 08

С

Слава in rust_offtopic
А, ну ок.
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
можешь локально запустить и проверить
уже уменьшил задержки и проверил там же, пришлось за комп сесть.

Там дедлок появляется потому, что delay_for заскедулен, но сейчас выполняется block_on, который не завершится, пока delay_for не рескедульнется после времени ожиданя?
источник

P

Pavel in rust_offtopic
(выглядит опять как протечка абстракций — примитивы синхронизации разных уровней используются одновременно)
источник

С

Слава in rust_offtopic
Pavel
уже уменьшил задержки и проверил там же, пришлось за комп сесть.

Там дедлок появляется потому, что delay_for заскедулен, но сейчас выполняется block_on, который не завершится, пока delay_for не рескедульнется после времени ожиданя?
Я выше написал. Сделай два процесса лучше, с stdit-stdout. Будет нагляднее и интереснее. В том числе потому, что размер буфера для этих пайпов заранее неизвестен.
источник

P

Pavel in rust_offtopic
Слава
Я не понимаю предмета вашего спора, но есть известный пример с двусторонним общением через stdin-stdout между двумя процессами. Если ввод-вывод будет блокирующим, то можно очень легко словить взаимоблокировку.
вопрос — называть ли что-то асинхронным, если оно останавливает ход программы, хотя не блокирует что-то другое
источник

С

Слава in rust_offtopic
Pavel
вопрос — называть ли что-то асинхронным, если оно останавливает ход программы, хотя не блокирует что-то другое
А останавливает?
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
вопрос — называть ли что-то асинхронным, если оно останавливает ход программы, хотя не блокирует что-то другое
первую штуку принято называть асинхронной, а вторую - синхронной
источник

AZ

Alex Zhukovsky in rust_offtopic
включая ту ссылку что ты скинул, если ты внимательно прочитаешь
источник

AZ

Alex Zhukovsky in rust_offtopic
если не веришь мне можешь спросить у кого-нибудь еще
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
включая ту ссылку что ты скинул, если ты внимательно прочитаешь
я кинул две, почитай вниметельно первую
источник

P

Pavel in rust_offtopic
синхронность только коррелирует с блокировкой, но не равнозначна ей
источник

P

Pavel in rust_offtopic
если каждый шаг твоей программы выполняется друг за другом на настенных часах, то она синхронная, foo() c твоего пример — синхронная, например
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
если каждый шаг твоей программы выполняется друг за другом на настенных часах, то она синхронная, foo() c твоего пример — синхронная, например
у тебя странное представление.
источник

AZ

Alex Zhukovsky in rust_offtopic
это не так
источник

AZ

Alex Zhukovsky in rust_offtopic
foo асинхронный полностью
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
у тебя странное представление.
посмотри на само слово
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
посмотри на само слово
asynchronous wait?
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
foo асинхронный полностью
foo совместим с асинхронностью тем, что он не блокирует поток, сам же foo полностью линеен и синхронен
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
asynchronous wait?
слово synchronous
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
foo совместим с асинхронностью тем, что он не блокирует поток, сам же foo полностью линеен и синхронен
fn foo() -> impl Future<...> {
  delay_for(Duration::from_millis(100)).and_then(|_| {
      println!("100 ms in foo have elapsed");
      future::ok(());
  })
}

А это синхронная функция?
источник