Author: Anthony Williams
-
ACCU 2023: presentation and free books
The ACCU 2023 conference is next week, running from 19th-22nd April 2023, in Bristol, UK. My presentation This year I will be presenting "Designing for concurrency using message passing" on 22nd April. The abstract is: One common way to desi…
-
Review of Embracing Modern C++ Safely by John Lakos, Vittorio Romeo, Rostislav Khlebnikov and Alisdair Meredith
Verdict: Conditionally Recommended (3/5) This is a huge book, over 1300 pages, and contains a wealth of information about all the language (not library) facilities added in C++11 and C++14. It has one "section" per language feature, and …
-
2-day More Concurrent Thinking class at CppCon 2022
I am excited to be going to CppCon again this year, where I will be running a 2-day class: More Concurrent Thinking in C++: Beyond the Basics. The class is onsite at the conference venue in Aurora, Colorado, USA, on Saturday 10th September 2022 and Sun…
-
Online Concurrency Workshop at C++ on Sea 2021
The restrictions brought upon us by COVID-19 are not over yet, and C++ on Sea is the latest conference that will be running as an online-only conference. I will be running my More Concurrent Thinking class as an online workshop for C++ on Sea on 30th J…
-
Using atomics for thread synchronization in C++
In my previous blog post I wrote about spin locks, and how compilers must not move the locking loop above a prior unlock. After thinking about this done more, I realised that is not something specific to locks — the same issue arises with any two…
-
Can non-overlapping spinlocks deadlock in C++?
There has been discussion on Twitter recently about whether or not the C++ memory model allows spinlocks to deadlock if they just use memory_order_acquire in lock and memory_order_release in unlock, due to compiler optimizations. The case in question i…
-
Ticket Maps
It has been an increasingly common scenario that I’ve encountered where you have some ID that’s monotonically increasing, such as a subscription or connection index, or user ID, and you need your C++ program to hold some data that’s associated with tha…
-
Online Concurrency Classes
With all the restrictions brought upon us by COVID-19, many C++ conferences are moving online. This includes Cppcon and NDC Tech Town, both of which are being run as 100% virtual conferences this year. I will be running my More Concurrent Thinking clas…
-
Invariants and Preconditions
I tend to think about invariants and preconditions a lot. Pretty much every class has invariants, and most functions have preconditions. I don’t think they are complicated concepts, but somehow they seem to confuse people anyway, so I decided it was ti…