Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Changeset 1710

Show
Ignore:
Timestamp:
07/02/10 19:14:22 (14 years ago)
Author:
sean
Message:

Made Tid exempt from hasLocalAliasing tests until shared can properly be applied to the mbox field inside Tid. The actual implementation is safe as-is so adding the shared label is mostly to conform to the D2 way of doing things.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/phobos/std/concurrency.d

    r1699 r1710  
    4747    import std.typecons; 
    4848    import std.typetuple; 
    4949     
    5050    template isTuple(T) 
    5151    { 
    5252       enum isTuple = __traits(compiles, 
    5353                               { void f(X...)(Tuple!(X) t) {}; 
    5454                                 f(T.init); }); 
    5555    } 
    5656     
     57    template hasLocalAliasing(T...) 
     58    { 
     59        static if( !T.length ) 
     60            enum hasLocalAliasing = false; 
     61        else 
     62            enum hasLocalAliasing = (std.traits.hasLocalAliasing!(T[0]) && !is(T[0] == Tid)) || 
     63                                    std.concurrency.hasLocalAliasing!(T[1 .. $]); 
     64    } 
     65 
    5766    enum MsgType 
    5867    { 
    5968        standard, 
    6069        priority, 
    6170        linkDead, 
    6271    } 
    6372     
    6473    struct Message 
    6574    { 
    6675        MsgType type;