Size: a a a

2021 January 15

r

red75prime in Rust Async
Ilya Lakhin
А, то есть я делаю, например, into_std, и потом делаю elapsed по UNIX_EPOCH?
elapsed тут не нужен. Что-то вроде instant.duration_since(Instant::from_std(std::time::UNIX_EPOCH)).as_secs()
источник

IL

Ilya Lakhin in Rust Async
Тогда совсем нубский вопрос. Instant::from_std принимает Instant, а UNIX_EPOCH типа SystemTime
источник

IL

Ilya Lakhin in Rust Async
Его туда не передашь
источник

D

Denis in Rust Async
Instant — монотонный таймер, ко времени на часах не имеет никакого отношения ) единственный вариант — отсчитывать разницу от какого-то произвольного (определённого тобой) момента
например, можно сделать глобальный статик pub static REFERENCE_INSTANT: Lazy<Instant> = Lazy::new(Instant::now), и потом интервалы от него отсчитывать
источник

IL

Ilya Lakhin in Rust Async
Ну хорошо, а как отсчитать от начала юникс эпохи все-таки? :)
источник

PP

Pavel Perestoronin in Rust Async
Ilya Lakhin
Ну хорошо, а как отсчитать от начала юникс эпохи все-таки? :)
https://stackoverflow.com/questions/26593387/how-can-i-get-the-current-time-in-milliseconds
оно?... там правда оно не отмечено галочкой, надо проверить, по-хорошему..
источник

IL

Ilya Lakhin in Rust Async
Ну как бы... ок )
источник

PP

Pavel Perestoronin in Rust Async
Ilya Lakhin
Ну как бы... ок )
(ну оно работает, вроде как..)
источник

IL

Ilya Lakhin in Rust Async
Ну да, я понял уже
источник

IL

Ilya Lakhin in Rust Async
Поменял всё на SystemTime
источник

IL

Ilya Lakhin in Rust Async
Просто я не очень понимаю, зачем тогда нужен Instant, возвращаемый tokio::time::interval().tick()
источник

PP

Pavel Perestoronin in Rust Async
Ilya Lakhin
Просто я не очень понимаю, зачем тогда нужен Instant, возвращаемый tokio::time::interval().tick()
видимо, чтобы смотреть, сколько осталось/прошло.. (относительное время, которое вычитанием получается)
источник

K

Kitsu in Rust Async
https://docs.rs/tokio/1.0.2/src/tokio/time/instant.rs.html#34-36
По факту это просто 1-в-1 стдшный инстант
источник

K

Kitsu in Rust Async
Видимо для стабильного апи завезли, чтобы расширять/сужать функциональность без зависимости от стд
источник

K

Kitsu in Rust Async
а не, еще проще, для time::pause/advance
источник

ph

pl 🦑 hk in Rust Async
да, для тестов
источник
2021 January 16

IL

Ilya Lakhin in Rust Async
Привет! А откуда Токио берет spawn_blocking треды? Может такое быть, что я заблокировался внутри такого треда, и это заблокировало какой-нибудь тред обычного экзекьютора?
источник

MB

Mikail Bagishov in Rust Async
Он их просто спавнит через std::thread.
источник

MB

Mikail Bagishov in Rust Async
Если ты  в blocking треде залокал синхронный мьютекс и потом пошел делать какую-то долгую операцию, и потом какая-то обычная асинхронная таска этот мьютекс тоже решила залокать, то весь ее поток заблокируется. Других сценариев я придумать сходу не могу.
источник

IL

Ilya Lakhin in Rust Async
Ага... ну ок, буду тогда разбираться
источник