Ignore:
Timestamp:
Aug 12, 2020, 1:33:00 PM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
cd02108, fb0ae06
Parents:
26ffcda
Message:

Added unnecessary thread-fence to work around incorrect reorder

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel.cfa

    r26ffcda rdab09ad  
    532532                unsigned total   = this.total;
    533533                processor * proc = &this.list`first;
     534                // Thread fence is unnecessary, but gcc-8 and older incorrectly reorder code without it
     535                __atomic_thread_fence(__ATOMIC_SEQ_CST);
    534536                if(l != __atomic_load_n(&this.lock, __ATOMIC_SEQ_CST)) { Pause(); continue; }
    535537                return [idle, total, proc];
Note: See TracChangeset for help on using the changeset viewer.