1*58b9f456SAndroid Build Coastguard Worker<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2*58b9f456SAndroid Build Coastguard Worker "http://www.w3.org/TR/html4/strict.dtd"> 3*58b9f456SAndroid Build Coastguard Worker<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> 4*58b9f456SAndroid Build Coastguard Worker<html> 5*58b9f456SAndroid Build Coastguard Worker<head> 6*58b9f456SAndroid Build Coastguard Worker <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7*58b9f456SAndroid Build Coastguard Worker <title><atomic> design</title> 8*58b9f456SAndroid Build Coastguard Worker <link type="text/css" rel="stylesheet" href="menu.css"> 9*58b9f456SAndroid Build Coastguard Worker <link type="text/css" rel="stylesheet" href="content.css"> 10*58b9f456SAndroid Build Coastguard Worker</head> 11*58b9f456SAndroid Build Coastguard Worker 12*58b9f456SAndroid Build Coastguard Worker<body> 13*58b9f456SAndroid Build Coastguard Worker<div id="menu"> 14*58b9f456SAndroid Build Coastguard Worker <div> 15*58b9f456SAndroid Build Coastguard Worker <a href="https://llvm.org/">LLVM Home</a> 16*58b9f456SAndroid Build Coastguard Worker </div> 17*58b9f456SAndroid Build Coastguard Worker 18*58b9f456SAndroid Build Coastguard Worker <div class="submenu"> 19*58b9f456SAndroid Build Coastguard Worker <label>libc++ Info</label> 20*58b9f456SAndroid Build Coastguard Worker <a href="/index.html">About</a> 21*58b9f456SAndroid Build Coastguard Worker </div> 22*58b9f456SAndroid Build Coastguard Worker 23*58b9f456SAndroid Build Coastguard Worker <div class="submenu"> 24*58b9f456SAndroid Build Coastguard Worker <label>Quick Links</label> 25*58b9f456SAndroid Build Coastguard Worker <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> 26*58b9f456SAndroid Build Coastguard Worker <a href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> 27*58b9f456SAndroid Build Coastguard Worker <a href="https://bugs.llvm.org/">Bug Reports</a> 28*58b9f456SAndroid Build Coastguard Worker <a href="https://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> 29*58b9f456SAndroid Build Coastguard Worker <a href="https://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> 30*58b9f456SAndroid Build Coastguard Worker </div> 31*58b9f456SAndroid Build Coastguard Worker</div> 32*58b9f456SAndroid Build Coastguard Worker 33*58b9f456SAndroid Build Coastguard Worker<div id="content"> 34*58b9f456SAndroid Build Coastguard Worker <!--*********************************************************************--> 35*58b9f456SAndroid Build Coastguard Worker <h1><atomic> design</h1> 36*58b9f456SAndroid Build Coastguard Worker <!--*********************************************************************--> 37*58b9f456SAndroid Build Coastguard Worker 38*58b9f456SAndroid Build Coastguard Worker<p> 39*58b9f456SAndroid Build Coastguard WorkerThis is a variation of design A which puts the burden on the library to arrange 40*58b9f456SAndroid Build Coastguard Workerfor the correct manipulation of the run time memory ordering arguments, and only 41*58b9f456SAndroid Build Coastguard Workercalls the compiler for well-defined memory orderings. I think of this design as 42*58b9f456SAndroid Build Coastguard Workerthe worst of A and C, instead of the best of A and C. But I offer it as an 43*58b9f456SAndroid Build Coastguard Workeroption in the spirit of completeness. 44*58b9f456SAndroid Build Coastguard Worker</p> 45*58b9f456SAndroid Build Coastguard Worker 46*58b9f456SAndroid Build Coastguard Worker<blockquote><pre> 47*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 48*58b9f456SAndroid Build Coastguard Workerbool __atomic_is_lock_free(const type* atomic_obj); 49*58b9f456SAndroid Build Coastguard Worker 50*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 51*58b9f456SAndroid Build Coastguard Workertype __atomic_load_relaxed(const volatile type* atomic_obj); 52*58b9f456SAndroid Build Coastguard Workertype __atomic_load_consume(const volatile type* atomic_obj); 53*58b9f456SAndroid Build Coastguard Workertype __atomic_load_acquire(const volatile type* atomic_obj); 54*58b9f456SAndroid Build Coastguard Workertype __atomic_load_seq_cst(const volatile type* atomic_obj); 55*58b9f456SAndroid Build Coastguard Worker 56*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 57*58b9f456SAndroid Build Coastguard Workertype __atomic_store_relaxed(volatile type* atomic_obj, type desired); 58*58b9f456SAndroid Build Coastguard Workertype __atomic_store_release(volatile type* atomic_obj, type desired); 59*58b9f456SAndroid Build Coastguard Workertype __atomic_store_seq_cst(volatile type* atomic_obj, type desired); 60*58b9f456SAndroid Build Coastguard Worker 61*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 62*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_relaxed(volatile type* atomic_obj, type desired); 63*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_consume(volatile type* atomic_obj, type desired); 64*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_acquire(volatile type* atomic_obj, type desired); 65*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_release(volatile type* atomic_obj, type desired); 66*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_acq_rel(volatile type* atomic_obj, type desired); 67*58b9f456SAndroid Build Coastguard Workertype __atomic_exchange_seq_cst(volatile type* atomic_obj, type desired); 68*58b9f456SAndroid Build Coastguard Worker 69*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 70*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_relaxed_relaxed(volatile type* atomic_obj, 71*58b9f456SAndroid Build Coastguard Worker type* expected, 72*58b9f456SAndroid Build Coastguard Worker type desired); 73*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_consume_relaxed(volatile type* atomic_obj, 74*58b9f456SAndroid Build Coastguard Worker type* expected, 75*58b9f456SAndroid Build Coastguard Worker type desired); 76*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_consume_consume(volatile type* atomic_obj, 77*58b9f456SAndroid Build Coastguard Worker type* expected, 78*58b9f456SAndroid Build Coastguard Worker type desired); 79*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acquire_relaxed(volatile type* atomic_obj, 80*58b9f456SAndroid Build Coastguard Worker type* expected, 81*58b9f456SAndroid Build Coastguard Worker type desired); 82*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acquire_consume(volatile type* atomic_obj, 83*58b9f456SAndroid Build Coastguard Worker type* expected, 84*58b9f456SAndroid Build Coastguard Worker type desired); 85*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acquire_acquire(volatile type* atomic_obj, 86*58b9f456SAndroid Build Coastguard Worker type* expected, 87*58b9f456SAndroid Build Coastguard Worker type desired); 88*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_release_relaxed(volatile type* atomic_obj, 89*58b9f456SAndroid Build Coastguard Worker type* expected, 90*58b9f456SAndroid Build Coastguard Worker type desired); 91*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_release_consume(volatile type* atomic_obj, 92*58b9f456SAndroid Build Coastguard Worker type* expected, 93*58b9f456SAndroid Build Coastguard Worker type desired); 94*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_release_acquire(volatile type* atomic_obj, 95*58b9f456SAndroid Build Coastguard Worker type* expected, 96*58b9f456SAndroid Build Coastguard Worker type desired); 97*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acq_rel_relaxed(volatile type* atomic_obj, 98*58b9f456SAndroid Build Coastguard Worker type* expected, 99*58b9f456SAndroid Build Coastguard Worker type desired); 100*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acq_rel_consume(volatile type* atomic_obj, 101*58b9f456SAndroid Build Coastguard Worker type* expected, 102*58b9f456SAndroid Build Coastguard Worker type desired); 103*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_acq_rel_acquire(volatile type* atomic_obj, 104*58b9f456SAndroid Build Coastguard Worker type* expected, 105*58b9f456SAndroid Build Coastguard Worker type desired); 106*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_seq_cst_relaxed(volatile type* atomic_obj, 107*58b9f456SAndroid Build Coastguard Worker type* expected, 108*58b9f456SAndroid Build Coastguard Worker type desired); 109*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_seq_cst_consume(volatile type* atomic_obj, 110*58b9f456SAndroid Build Coastguard Worker type* expected, 111*58b9f456SAndroid Build Coastguard Worker type desired); 112*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_seq_cst_acquire(volatile type* atomic_obj, 113*58b9f456SAndroid Build Coastguard Worker type* expected, 114*58b9f456SAndroid Build Coastguard Worker type desired); 115*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_strong_seq_cst_seq_cst(volatile type* atomic_obj, 116*58b9f456SAndroid Build Coastguard Worker type* expected, 117*58b9f456SAndroid Build Coastguard Worker type desired); 118*58b9f456SAndroid Build Coastguard Worker 119*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type must be trivially copyable</font> 120*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_relaxed_relaxed(volatile type* atomic_obj, 121*58b9f456SAndroid Build Coastguard Worker type* expected, 122*58b9f456SAndroid Build Coastguard Worker type desired); 123*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_consume_relaxed(volatile type* atomic_obj, 124*58b9f456SAndroid Build Coastguard Worker type* expected, 125*58b9f456SAndroid Build Coastguard Worker type desired); 126*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_consume_consume(volatile type* atomic_obj, 127*58b9f456SAndroid Build Coastguard Worker type* expected, 128*58b9f456SAndroid Build Coastguard Worker type desired); 129*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acquire_relaxed(volatile type* atomic_obj, 130*58b9f456SAndroid Build Coastguard Worker type* expected, 131*58b9f456SAndroid Build Coastguard Worker type desired); 132*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acquire_consume(volatile type* atomic_obj, 133*58b9f456SAndroid Build Coastguard Worker type* expected, 134*58b9f456SAndroid Build Coastguard Worker type desired); 135*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acquire_acquire(volatile type* atomic_obj, 136*58b9f456SAndroid Build Coastguard Worker type* expected, 137*58b9f456SAndroid Build Coastguard Worker type desired); 138*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_release_relaxed(volatile type* atomic_obj, 139*58b9f456SAndroid Build Coastguard Worker type* expected, 140*58b9f456SAndroid Build Coastguard Worker type desired); 141*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_release_consume(volatile type* atomic_obj, 142*58b9f456SAndroid Build Coastguard Worker type* expected, 143*58b9f456SAndroid Build Coastguard Worker type desired); 144*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_release_acquire(volatile type* atomic_obj, 145*58b9f456SAndroid Build Coastguard Worker type* expected, 146*58b9f456SAndroid Build Coastguard Worker type desired); 147*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acq_rel_relaxed(volatile type* atomic_obj, 148*58b9f456SAndroid Build Coastguard Worker type* expected, 149*58b9f456SAndroid Build Coastguard Worker type desired); 150*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acq_rel_consume(volatile type* atomic_obj, 151*58b9f456SAndroid Build Coastguard Worker type* expected, 152*58b9f456SAndroid Build Coastguard Worker type desired); 153*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_acq_rel_acquire(volatile type* atomic_obj, 154*58b9f456SAndroid Build Coastguard Worker type* expected, 155*58b9f456SAndroid Build Coastguard Worker type desired); 156*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_seq_cst_relaxed(volatile type* atomic_obj, 157*58b9f456SAndroid Build Coastguard Worker type* expected, 158*58b9f456SAndroid Build Coastguard Worker type desired); 159*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_seq_cst_consume(volatile type* atomic_obj, 160*58b9f456SAndroid Build Coastguard Worker type* expected, 161*58b9f456SAndroid Build Coastguard Worker type desired); 162*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_seq_cst_acquire(volatile type* atomic_obj, 163*58b9f456SAndroid Build Coastguard Worker type* expected, 164*58b9f456SAndroid Build Coastguard Worker type desired); 165*58b9f456SAndroid Build Coastguard Workerbool __atomic_compare_exchange_weak_seq_cst_seq_cst(volatile type* atomic_obj, 166*58b9f456SAndroid Build Coastguard Worker type* expected, 167*58b9f456SAndroid Build Coastguard Worker type desired); 168*58b9f456SAndroid Build Coastguard Worker 169*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> 170*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> 171*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// char16_t, char32_t, wchar_t</font> 172*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_relaxed(volatile type* atomic_obj, type operand); 173*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_consume(volatile type* atomic_obj, type operand); 174*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_acquire(volatile type* atomic_obj, type operand); 175*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_release(volatile type* atomic_obj, type operand); 176*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_acq_rel(volatile type* atomic_obj, type operand); 177*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_add_seq_cst(volatile type* atomic_obj, type operand); 178*58b9f456SAndroid Build Coastguard Worker 179*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> 180*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> 181*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// char16_t, char32_t, wchar_t</font> 182*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_relaxed(volatile type* atomic_obj, type operand); 183*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_consume(volatile type* atomic_obj, type operand); 184*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_acquire(volatile type* atomic_obj, type operand); 185*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_release(volatile type* atomic_obj, type operand); 186*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_acq_rel(volatile type* atomic_obj, type operand); 187*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_sub_seq_cst(volatile type* atomic_obj, type operand); 188*58b9f456SAndroid Build Coastguard Worker 189*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> 190*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> 191*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// char16_t, char32_t, wchar_t</font> 192*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_relaxed(volatile type* atomic_obj, type operand); 193*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_consume(volatile type* atomic_obj, type operand); 194*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_acquire(volatile type* atomic_obj, type operand); 195*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_release(volatile type* atomic_obj, type operand); 196*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_acq_rel(volatile type* atomic_obj, type operand); 197*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_and_seq_cst(volatile type* atomic_obj, type operand); 198*58b9f456SAndroid Build Coastguard Worker 199*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> 200*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> 201*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// char16_t, char32_t, wchar_t</font> 202*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_relaxed(volatile type* atomic_obj, type operand); 203*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_consume(volatile type* atomic_obj, type operand); 204*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_acquire(volatile type* atomic_obj, type operand); 205*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_release(volatile type* atomic_obj, type operand); 206*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_acq_rel(volatile type* atomic_obj, type operand); 207*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_or_seq_cst(volatile type* atomic_obj, type operand); 208*58b9f456SAndroid Build Coastguard Worker 209*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> 210*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> 211*58b9f456SAndroid Build Coastguard Worker<font color="#C80000">// char16_t, char32_t, wchar_t</font> 212*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_relaxed(volatile type* atomic_obj, type operand); 213*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_consume(volatile type* atomic_obj, type operand); 214*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_acquire(volatile type* atomic_obj, type operand); 215*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_release(volatile type* atomic_obj, type operand); 216*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_acq_rel(volatile type* atomic_obj, type operand); 217*58b9f456SAndroid Build Coastguard Workertype __atomic_fetch_xor_seq_cst(volatile type* atomic_obj, type operand); 218*58b9f456SAndroid Build Coastguard Worker 219*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_relaxed(void* volatile* atomic_obj, ptrdiff_t operand); 220*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_consume(void* volatile* atomic_obj, ptrdiff_t operand); 221*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_acquire(void* volatile* atomic_obj, ptrdiff_t operand); 222*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_release(void* volatile* atomic_obj, ptrdiff_t operand); 223*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_acq_rel(void* volatile* atomic_obj, ptrdiff_t operand); 224*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_add_seq_cst(void* volatile* atomic_obj, ptrdiff_t operand); 225*58b9f456SAndroid Build Coastguard Worker 226*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_relaxed(void* volatile* atomic_obj, ptrdiff_t operand); 227*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_consume(void* volatile* atomic_obj, ptrdiff_t operand); 228*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_acquire(void* volatile* atomic_obj, ptrdiff_t operand); 229*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_release(void* volatile* atomic_obj, ptrdiff_t operand); 230*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_acq_rel(void* volatile* atomic_obj, ptrdiff_t operand); 231*58b9f456SAndroid Build Coastguard Workervoid* __atomic_fetch_sub_seq_cst(void* volatile* atomic_obj, ptrdiff_t operand); 232*58b9f456SAndroid Build Coastguard Worker 233*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_relaxed(); 234*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_consume(); 235*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_acquire(); 236*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_release(); 237*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_acq_rel(); 238*58b9f456SAndroid Build Coastguard Workervoid __atomic_thread_fence_seq_cst(); 239*58b9f456SAndroid Build Coastguard Worker 240*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_relaxed(); 241*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_consume(); 242*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_acquire(); 243*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_release(); 244*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_acq_rel(); 245*58b9f456SAndroid Build Coastguard Workervoid __atomic_signal_fence_seq_cst(); 246*58b9f456SAndroid Build Coastguard Worker</pre></blockquote> 247*58b9f456SAndroid Build Coastguard Worker 248*58b9f456SAndroid Build Coastguard Worker</div> 249*58b9f456SAndroid Build Coastguard Worker</body> 250*58b9f456SAndroid Build Coastguard Worker</html> 251