Changeset 13d33a75 for libcfa/src/concurrency/kernel.cfa
- Timestamp:
- Aug 18, 2020, 4:31:19 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 8e9d567
- Parents:
- ef9988b (diff), f2384c9a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.cfa
ref9988b r13d33a75 103 103 // Do it here 104 104 kernelTLS.rand_seed ^= rdtscl(); 105 kernelTLS.ready_rng.fwd_seed = 25214903917_l64u * (rdtscl() ^ (uintptr_t)&runner); 106 __tls_rand_advance_bck(); 105 107 106 108 processor * this = runner.proc; … … 532 534 unsigned total = this.total; 533 535 processor * proc = &this.list`first; 534 // Threadfence is unnecessary, but gcc-8 and older incorrectly reorder code without it535 __atomic_thread_fence(__ATOMIC_SEQ_CST);536 // Compiler fence is unnecessary, but gcc-8 and older incorrectly reorder code without it 537 asm volatile("": : :"memory"); 536 538 if(l != __atomic_load_n(&this.lock, __ATOMIC_SEQ_CST)) { Pause(); continue; } 537 539 return [idle, total, proc];
Note: See TracChangeset
for help on using the changeset viewer.