home.social

#waker — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #waker, aggregated by home.social.

fetched live
  1. Как на самом деле работает .await: пишем свой async-рантайм на Rust с нуля

    Каждый раз, когда вы пишете .await, происходит не магия, а вполне конкретный механизм: Future, Waker и опрос состояния. Чтобы увидеть это своими глазами, я написал собственный async-рантайм на Rust с нуля - с executor, reactor на epoll и рабочим TCP-эхо-сервером. По пути разобрался, как именно tokio будит ваши задачи, и нашёл баг, который тихо висел у меня в проде. Внутри - весь код целиком и объяснение без отсылок к чёрным ящикам.

    habr.com/ru/articles/1050160/

    #rust #async #tokio #future #waker #executor

  2. Твой async fn на самом деле enum, а Pin нужен потому, что Rust наступил на грабли самоссылающихся структур

    async fn в Rust — это не магия и не зелёный поток, а обычный enum, который компилятор генерирует за тебя. Разбираем, почему Future это машина состояний, зачем нужен Pin, как работает Waker и executor, и как одна .await -точка может незаметно заставить твой сервис есть память гигабайтами.

    habr.com/ru/articles/1033710/

    #rust #async #tokio #pin #futures #executor #waker #async_fn #cargoexpand #undefined_behavior