Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
outlinetrue

Main Issues

We assume the compiler processor may reorder instructions or remove them altogether for efficiency and delay stores indefinitely unless told otherwise.

We assume the processor compiler may reorder instructions and delay stores indefinitely or remove them altogether for efficiency unless told otherwise.

A correct concurrency primitive must account for both of these issues.

Compiler Tools

Processor Tools

Memory fences: Mfence

Compiler Tools

Inline assembly

asm vs _asm_
volatile vs _volatile_
Clobbers memory

Volatile keyword elsewhere

On data
On pointers

Survey of Existing Concurrency Primitives