It’s a relatively simple question (though maybe with not so simple answer), mainly out of curiosity and desire to understand intrinsincs better.
We have several types which are
Send but not
Sync (this is, for example, every
Cell-like struct). Reasoning is easy to understand: when the type has interior mutability, we must be sure that we mutate it from one place only, but this place can be everywhere as long as it is singular.
But is there any case where the opposite would be sound - i.e., type is
Sync and not
Send? Seems that this will mean that it must have exactly one owner (some complex cloning semantics, like
Rc?), but can have concurrent borrowers. I can’t imagine this for now, but maybe someone has encountered this already?