Relaxed Semantic

The relaxed semantic is the end of the Scala. The relaxed semantic is the weakest of all memory models and guarantees only, that the operations on atomic variables are atomic.

Read more
Comments 10Views: 2766

Acquire-Release Fences

Acquire and release fences guarantees similar synchronization and ordering constraints as atomics with acquire-release semantic. Similar, because the differences are in the details.

Read more
Comments 9Views: 2241

Fences are Memory Barriers

The key idea of a std::atomic_thread_fence is, to establish synchronization and ordering constraints between threads without an atomic operation.

Read more
Comments 8Views: 3601

Acquire-Release Semantic - The typical Misunderstanding

A release operation synchronizes-with an acquire operation on the same atomic variable. So we can easily synchronize threads, if ... . Todays post is about the if.

Read more
Add CommentViews: 2614


std::memory_order_consume is the most legendary of the six memory models. That's for two reasons. At one hand, std::memory_order_consume is extremely hard to get. At the other hand - that may change in the future - no compiler supports it.

Read more
Comments 2Views: 4088

Transitivity of the Acquire-Release Semantic

A release operation synchronizes with an acquire operation on the same atomic variable and establishes in addition an ordering constraints. These are the components to synchronize threads in a performant way, in case they act on the same atomic. But how can that work, if two threads share no atomic variable? We want no sequential consistency, because that is too heavy. We want the light acquire-release semantic.

Read more
Add CommentViews: 815

Acquire-Release Semantic

With the acquire-release semantic the memory model gets very thrilling. Because now, we have not to reason about the synchronization of threads, now we have to reason about the synchronization of the same atomic in different threads.

Read more
Comments 3Views: 1865

Support my blog by buying my E-book

Latest comments

Modernes C++

Subscribe to the newsletter

Including two chapters of my e-book
Introduction and Multithreading

Blog archive

Source Code


Today 571

All 219841

Currently are 100 guests and no members online