2323
2424use  unstable:: intrinsics; 
2525use  cast; 
26+ use  std:: kinds:: marker; 
2627use  option:: { Option , Some , None } ; 
2728use  ops:: Drop ; 
28- use  util:: NonCopyable ; 
2929
3030/** 
3131 * A simple atomic flag, that can be set and cleared. The most basic atomic type. 
3232 */ 
3333pub  struct  AtomicFlag  { 
3434    priv  v:  int , 
35-     priv nocopy :   NonCopyable 
35+     priv nopod :  marker :: NoPod 
3636} 
3737
3838/** 
3939 * An atomic boolean type. 
4040 */ 
4141pub  struct  AtomicBool  { 
4242    priv  v:  uint , 
43-     priv nocopy :   NonCopyable 
43+     priv nopod :  marker :: NoPod 
4444} 
4545
4646/** 
4747 * A signed atomic integer type, supporting basic atomic arithmetic operations 
4848 */ 
4949pub  struct  AtomicInt  { 
5050    priv  v:  int , 
51-     priv nocopy :   NonCopyable 
51+     priv nopod :  marker :: NoPod 
5252} 
5353
5454/** 
5555 * An unsigned atomic integer type, supporting basic atomic arithmetic operations 
5656 */ 
5757pub  struct  AtomicUint  { 
5858    priv  v:  uint , 
59-     priv nocopy :   NonCopyable 
59+     priv nopod :  marker :: NoPod 
6060} 
6161
6262/** 
@@ -66,7 +66,7 @@ pub struct AtomicUint {
6666#[ cfg( not( stage0) ) ]  
6767pub  struct  AtomicU64  { 
6868    priv  v:  u64 , 
69-     priv nocopy :   NonCopyable 
69+     priv nopod :  marker :: NoPod 
7070} 
7171
7272/** 
@@ -75,12 +75,12 @@ pub struct AtomicU64 {
7575#[ cfg( not( stage0) ) ]  
7676pub  struct  AtomicPtr < T >  { 
7777    priv  p:  uint , 
78-     priv nocopy :   NonCopyable 
78+     priv nopod :  marker :: NoPod 
7979} 
8080#[ cfg( stage0) ]  
8181pub  struct  AtomicPtr < T >  { 
8282    priv  p:  * mut  T , 
83-     priv nocopy :   NonCopyable 
83+     priv nopod :  marker :: NoPod 
8484} 
8585
8686/** 
@@ -105,17 +105,17 @@ pub enum Ordering {
105105    SeqCst 
106106} 
107107
108- pub  static  INIT_ATOMIC_FLAG  :  AtomicFlag  = AtomicFlag  {  v :  0 ,  nocopy :   NonCopyable  } ; 
109- pub  static  INIT_ATOMIC_BOOL  :  AtomicBool  = AtomicBool  {  v :  0 ,  nocopy :   NonCopyable  } ; 
110- pub  static  INIT_ATOMIC_INT   :  AtomicInt   = AtomicInt   {  v :  0 ,  nocopy :   NonCopyable  } ; 
111- pub  static  INIT_ATOMIC_UINT  :  AtomicUint  = AtomicUint  {  v :  0 ,  nocopy :   NonCopyable  } ; 
108+ pub  static  INIT_ATOMIC_FLAG  :  AtomicFlag  = AtomicFlag  {  v :  0 ,  nopod :  marker :: NoPod  } ; 
109+ pub  static  INIT_ATOMIC_BOOL  :  AtomicBool  = AtomicBool  {  v :  0 ,  nopod :  marker :: NoPod  } ; 
110+ pub  static  INIT_ATOMIC_INT   :  AtomicInt   = AtomicInt   {  v :  0 ,  nopod :  marker :: NoPod  } ; 
111+ pub  static  INIT_ATOMIC_UINT  :  AtomicUint  = AtomicUint  {  v :  0 ,  nopod :  marker :: NoPod  } ; 
112112#[ cfg( not( stage0) ) ]  
113- pub  static  INIT_ATOMIC_U64  :  AtomicU64  = AtomicU64  {  v :  0 ,  nocopy :   NonCopyable  } ; 
113+ pub  static  INIT_ATOMIC_U64  :  AtomicU64  = AtomicU64  {  v :  0 ,  nopod :  marker :: NoPod  } ; 
114114
115115impl  AtomicFlag  { 
116116
117117    pub  fn  new ( )  -> AtomicFlag  { 
118-         AtomicFlag  {  v :  0 ,  nocopy :   NonCopyable   } 
118+         AtomicFlag  {  v :  0 ,  nopod :  marker :: NoPod } 
119119    } 
120120
121121    /** 
@@ -138,7 +138,7 @@ impl AtomicFlag {
138138
139139impl  AtomicBool  { 
140140    pub  fn  new ( v :  bool )  -> AtomicBool  { 
141-         AtomicBool  {  v :  if  v {  1  }  else  {  0  } ,  nocopy :   NonCopyable  } 
141+         AtomicBool  {  v :  if  v {  1  }  else  {  0  } ,  nopod :  marker :: NoPod  } 
142142    } 
143143
144144    #[ inline]  
@@ -203,7 +203,7 @@ impl AtomicBool {
203203
204204impl  AtomicInt  { 
205205    pub  fn  new ( v :  int )  -> AtomicInt  { 
206-         AtomicInt  {  v : v,  nocopy :   NonCopyable   } 
206+         AtomicInt  {  v : v,  nopod :  marker :: NoPod } 
207207    } 
208208
209209    #[ inline]  
@@ -242,7 +242,7 @@ impl AtomicInt {
242242#[ cfg( not( stage0) ) ]  
243243impl  AtomicU64  { 
244244    pub  fn  new ( v :  u64 )  -> AtomicU64  { 
245-         AtomicU64  {  v : v,  nocopy :   NonCopyable  } 
245+         AtomicU64  {  v : v,  nopod :  marker :: NoPod  } 
246246    } 
247247
248248    #[ inline]  
@@ -278,7 +278,7 @@ impl AtomicU64 {
278278
279279impl  AtomicUint  { 
280280    pub  fn  new ( v :  uint )  -> AtomicUint  { 
281-         AtomicUint  {  v : v,  nocopy :   NonCopyable  } 
281+         AtomicUint  {  v : v,  nopod :  marker :: NoPod  } 
282282    } 
283283
284284    #[ inline]  
@@ -317,11 +317,11 @@ impl AtomicUint {
317317impl < T >  AtomicPtr < T >  { 
318318    #[ cfg( stage0) ]  
319319    pub  fn  new ( p :  * mut  T )  -> AtomicPtr < T >  { 
320-         AtomicPtr  {  p :  p,  nocopy :   NonCopyable  } 
320+         AtomicPtr  {  p :  p,  nopod :  marker :: NoPod  } 
321321    } 
322322    #[ cfg( not( stage0) ) ]  
323323    pub  fn  new ( p :  * mut  T )  -> AtomicPtr < T >  { 
324-         AtomicPtr  {  p :  p as  uint ,  nocopy :   NonCopyable  } 
324+         AtomicPtr  {  p :  p as  uint ,  nopod :  marker :: NoPod  } 
325325    } 
326326
327327    #[ inline]  
0 commit comments