{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreicuqwg6pujfwi3sdbtegs4lkhuulxgnhle4n3vwqfzof2nkj3q7va",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mlqn4o5g33g2"
  },
  "path": "/t/include-racy-reads-in-rust-memory-model-with-maybeinvalid-t/24289#post_16",
  "publishedAt": "2026-05-13T13:58:40.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "josh:\n\n> Is this the kind of \"can't\" where it actually works just fine in practice but compilers don't guarantee it despite that?\n\nIn C, `func(i++, i++)` may work in practice with gcc, but switching to clang gives another result. Hopefully, it is not the case for SeqLock implementations but, like my short snippet, most of them still rely on undefined behavior at language level. And relying on UB, while sometimes working in practice, is not something we want to keep in the Rust/C++/C ecosystem, especially regarding well-known and used primitives like SeqLock.",
  "title": "Include racy reads in Rust memory model with `MaybeInvalid<T>`"
}