Anonymous
Что именно происходит когда я запускаю футурки на CurrentThread экзекуторе? С пулом потоков все понятно, а вот здесь не могу вдуплить
Anonymous
Как выполняется прогресс
Anonymous
Потому что то, как я себе это сейчас представляю, скорее всего совершенно неправильно
Anonymous
А именно экзекутор тупо синхронно проходит по всем таскам в порядке очереди
Anonymous
Просто в чем тогда смысл
Anonymous
А хотя
Anonymous
https://forum.rustycrate.ru/t/predlagayu-sozdat-oficzialnuyu-gruppu-rurust-v-telegram/393
Anonymous
Да, так он и делает
Либо я тупой, либо в этом реально нет никакой пользы
Anonymous
Не могу понять
Berkus
Либо я тупой, либо в этом реально нет никакой пользы
Ну есть же, тебе не надо делать это самому, у тебя просто await в коде
Alex
Berkus
Не могу понять
Экзекьютор сам определяет какую футурку надо поллить. Сам за тебя это делает.
Anonymous
Просто допустим, почему бы просто не запустить новый тред и в нем синхронно выполнять все то же самое
red75prime
Как выполняется прогресс
Экзекутор ждёт сигнал о готовности и поллит все футуры ассоциированные с этим сигналом. Потом блокирует поток и опять ждет сигнала готовности
Anonymous
И какой смысл в том что экзекутор за меня определяет что поллить? Он есть в том случае если порядок выполнения тасков неизвестен, а здесь один поток их выполняет по порядку и их же поллит
red75prime
Пришёл сигнал о готовности чего-то другого - поллится футура, ждущая этого чего-то.
Anonymous
Но ведь они выполняются на одном потоке
red75prime
они ждут на одном потоке. выполняются по готовности ресурсов
red75prime
да, выполняются последовательно, но в заранее неизвестном порядке
Alex
> хотя там обычно менее цивилизованные разговоры Ржу
Anonymous
Спасибо
Anonymous
Victor
Как в Минске с Раст-комьюнити вообще? )
Anton
Как в Минске с Раст-комьюнити вообще? )
Я хз. Был раст митап один. Регулярных встреч не заметил.
Anonymous
В апреле или марте ещё был один. До этого ещё год назад.
Victor
а много вообще людей интересующихся? )
Anonymous
В апреле пришло человек 15, если память не изменяет.
Anton
Я в целом про раст.
Там больше было про блокчейн чем про раст
KosBeg
можете накатать краткий пример использования libc::sprintf из раста?
պլհկ
Но зачем?
KosBeg
нужно 😅
Victor
лучше уж snprintf() чтоли.
Victor
а лучше вообще без libc.
KosBeg
мне format! медленный... вам что, сложно?(
պլհկ
Ну ты пробовал сам? Что не работает?
Cat
Спасибо, но уже есть же)
Они хотят ОФИЦИАЛЬНОЕ сообщество
Nikita
А чем они будут отличаться от всех остальных?
Victor
официальностью, очевидно...
Nikita
кислотные трипы растоманов
Nikita
официальностью, очевидно...
суицидальностью, блэд
Berkus
мне format! медленный... вам что, сложно?(
эммм, а sprintf это самая небезопасная функция в сях
Berkus
snprintf хотя б
պլհկ
есть itoa, который по слухам быстрей формата
KosBeg
Ну ты пробовал сам? Что не работает?
да, уже всё ок, оно не хотело нормально линковаться под виндой. пофиксилось при помощи #[cfg_attr( all(windows, target_env = "msvc"), link(name = "legacy_stdio_definitions", kind = "static") )]
KosBeg
эммм, а sprintf это самая небезопасная функция в сях
про уязвимость форматной строки и переполнения буфера я знаю, сам сплоиты на разных CTF писал под такое.
red75prime
Runtime парсинг форматной строки в sprintf быстрее чем сгенерированная во время компиляции процедура вывода в format!? Хм. Там скорее реаллокации памяти под строку кучу времени забирают.
red75prime
Попробуй write!(&mut buf, "bla-bla-bla")
Денис
Ну мне в ответ прилетают ответы с этим параметром, где body разбито вот нужно все это собрать воедино
я обычно так делаю) body.fold(Vec::new(), |mut acc, chunk| { acc.extend_from_slice(&chunk); Ok::<_, hyper::Error>(acc) })
კაცი
откуда вы берётесь?
Денис
Ну мне в ответ прилетают ответы с этим параметром, где body разбито вот нужно все это собрать воедино
даже скорее так: let storage = body .content_length() .map(|len| len as usize) .map(Vec::with_capacity) .unwrap_or_else(Vec::new); body.fold(storage, |mut acc, chunk| { acc.extend_from_slice(&chunk); Ok::<_, hyper::Error>(acc) }).and_then(|v| { println!("Received body {:?}", v); Ok(()) })
kitsu
чот мне казалось, что body не итерируем, ок если так спасибо
Денис
то есть там fold из фьючеров, не из итераторов :)
Αλεχ
покажи замеры
kitsu
то есть там fold из фьючеров, не из итераторов :)
ой, ноес, там еще и асинхронщина
Loyd
Странно, что ещё никто не занёс
Loyd
Loyd
Бугуртим!
red75prime
хех, таких картинок можно штук много нарисовать, с разным составом участников. "а могёте без аллокаторов", stop-the-world-gc, hard real-time, "а где мне поставить seq, чтобы память не разбухала"
Oleg
Интересный набор
Oleg
для установления паритета, так сказать
KosBeg
схуяли он медленный?
относительно медленный, мне не достаточно скорости... вот код на расте - https://play.rust-lang.org/?gist=5f7eefcd4dff9410e4befbca858c8b61&version=nightly&mode=release&edition=2015 на моём не самом мощном компе показатели done! Time: 1315 ms done! Time: 4017 ms вот аналогичный(как по мне) код на сях - https://godbolt.org/g/7zLhda у меня замеры done! Time: 864 ms done! Time: 2557 ms сможете ускорить - буду благодарен. UPD:done! Time: 1185 ms done! Time: 2898 ms