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…

  • CppCon 2019 Trip Report and Slides

    Having been back from CppCon 2019 for over a week, I thought it was about time I wrote up my trip report. The venue This year, CppCon was at a new venue: the Gaylord Rockies Resort near Denver, Colorado, USA. This is a huge conference centre, currently…