{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiej7absrznmkxzeujnrv3cqc7rtjfp3q3kln2gc5cyjo2hnjhnibi",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mjawerpzqrs2"
  },
  "path": "/t/going-from-asyncwrite-to-asyncread/24130#post_6",
  "publishedAt": "2026-04-11T12:11:44.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "Basically the problem is this scenario:\n\n\n    let stream = Stream::new(|w: Writer| async move {\n        tokio::join!(async {\n            let mut w = std::pin::pin!(w);\n            write_all(&mut w, &[42]).await?;\n            write_all(w, &[42]).await\n        }, async {\n            some_other_async().await;\n        });\n    });\n\n\nIn this code, execution of code inside `some_other_async().await` may randomly stop executing at any `.await` point.",
  "title": "Going from AsyncWrite to AsyncRead"
}