- File:
-
- 1 edited
-
libcfa/src/concurrency/channel.hfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/channel.hfa
rfe293bf r3f0b062 28 28 unlock( lock ); 29 29 park(); 30 #if defined(__ARM_ARCH) 31 __atomic_thread_fence( __ATOMIC_SEQ_CST ); 32 #endif 30 33 return sn.extra == 0p; 31 34 } … … 130 133 static inline void __cons_handoff( channel(T) & chan, T & elem ) with(chan) { 131 134 memcpy( cons`first.extra, (void *)&elem, sizeof(T) ); // do waiting consumer work 135 #if defined(__ARM_ARCH) 136 __atomic_thread_fence( __ATOMIC_SEQ_CST ); 137 #endif 132 138 wake_one( cons ); 133 139 } … … 136 142 static inline void __prods_handoff( channel(T) & chan, T & retval ) with(chan) { 137 143 memcpy( (void *)&retval, prods`first.extra, sizeof(T) ); 144 #if defined(__ARM_ARCH) 145 __atomic_thread_fence( __ATOMIC_SEQ_CST ); 146 #endif 138 147 wake_one( prods ); 139 148 }
Note:
See TracChangeset
for help on using the changeset viewer.