Semantics of shared

Robert Jacques sandford at jhu.edu
Wed May 13 21:31:05 PDT 2009


On Wed, 13 May 2009 23:44:32 -0400, Matt <gelfmrogen at yahoo.com> wrote:
> [from reddit]
>
> There was just a post to reddit announcing that thread local storage  
> would be the default for global variables and that the 'shared'  
> qualifier would make this happen.   What I can't find is a description  
> of typing rules surrounding 'shared'.   From the discussion at reddit,  
> it sounded like 'shared' was intended to mean 'possibly shared', with  
> the implication that thread local objects can be treated as 'possibly  
> shared'.
> The problem I see with this is that it implies that it is not safe to  
> assign one shared reference to another, because the former may actually  
> be thread local while the latter is actually global.  This would seem to  
> make the "maybe shared" concept pretty useless.  Is this not a  
> problem?   Or if not, can someone clarify to me what the actual  
> semantics & typing rules are?
>
> Thanks,
> Matt

I'm posting Walter's reply from reddit:

WalterBright 4 points 6 hours ago[-]

You're right about the return types of accessors, though we plan to  
address this. But if I may make some corrections, C++ has four versions  
(none, const, volatile, and const volatile), while D has five (none,  
const, immutable, shared, and shared const). The shared immutable is not  
counted since is the same as immutable.

I don't see a place for "maybe shared" that isn't already handled by  
simply "shared".



More information about the Digitalmars-d mailing list