Semantics of shared

Robert Jacques sandford at jhu.edu
Thu May 14 07:15:05 PDT 2009


On Thu, 14 May 2009 08:51:37 -0400, Jason House  
<jason.james.house at gmail.com> wrote:

> Robert Jacques Wrote:
>
>> On Thu, 14 May 2009 02:13:37 -0400, Walter Bright
>> <newshound1 at digitalmars.com> wrote:
>>
>> > Robert Jacques wrote:
>> >> I agree for POD, but what classes where the synchronization is
>> >> encapsulated behind a virtual function call?
>> >
>> > synchronization can make a shared reference "tail shared".
>>
>> I agree, but that doesn't seem answer my question. Put another way, if I
>> have an interface I which is implemented by both a thread local class L
>> and a shared class S, then does some function F need to know about  
>> whether
>> the implementor of I is S or L?
>
> Shared data needs fundamentally different handling than thread local  
> data. I expect "shared I" and "__thread I" to be handled differently.  
> You can't store an S where an L is expected... It can break code.
>
>> P.S. There will obviously be some interfaces S can't implement, but  
>> that a
>> separate issue.
>>
>> >> Also, does this mean 'scope' as a type is going away?
>
> Of course not. Scope storage class will remain.

The use of scope I'm talking about (see below) isn't even implemented yet,  
so how can it remain? It was Walter bogged a while ago about using the  
scope keyword to aid escape analysis, which would provide a common type  
for shared-local-stack allocation. I'm not referring to the use of 'scope'  
to stack allocate a class.

>> > Scope never was a type, it's a storage class.
>>
>> Sorry for the confusion of terminology. However, you talk blog about  
>> using
>> the 'scope' keyword to support escape analysis, ettc. i.e. 'scope' would
>> become the 'const' of the shared-thread local-stack storage type system.
>> Is this still the plan?
>




More information about the Digitalmars-d mailing list