It has always done that [1]. You can only send refs through channels or via the spawn primitive where they are serialized&#x2F;deep copied (or as arguments to threads upon creation, where that happens implicitly).<p>[1] It may have been that using global variables to share refs between threads did only trigger a warning at some point, not an error. I&#x27;m not 100% sure about that. But the serialization has been there since the early days of multi-threading support in 2011.