proomt

Search

Search posts, papers, and topics

concurrency

RSS
  1. 1

    JDK 27 has been released

    JDK 27 became GA on 15 Sep 2026 with binaries from Oracle. It ships default G1 GC, post‑quantum TLS key exchange, default compact object headers, and several preview features such as structured concurrency and lazy constants.

    Lobstersopenjdk.org1 minreleaseHN41lobste.rs37
  2. 2

    Textbook review: Is Parallel Programming Hard, And, If So, What Can You Do About It?

    A detailed, personal review of Paul McKenney’s free online textbook on parallel programming. The author, coming from a TLA⁺/distributed‑systems background, finds the early chapters excellent for building intuition about CPU caches, memory ordering, and false‑sharing, but notes gaps (e.g., shallow coverage of C++11 atomics and MESI). The review is concrete, cites specific chapters, and offers prac…

    Lobstersahelwer.ca8 minlobste.rs21
  3. 3

    Concurrency Control: Your Aggregate Is Single-Threaded. Your Cluster Isn’t.

    This article distinguishes between serialization (preventing concurrent access) and arbitration (permitting access and rejecting losers) in distributed concurrency control. It argues that arbitration should be responsible for correctness, as serialization guarantees are conditional and can fail silently in multi-process environments, leading to data corruption.

    Atomic Objectatomicobject.com14 min
  4. 4

    std::call_once vs. std::async

    Raymond Chen compares using std::call_once versus std::async (deferred) for lazy initialization in C++. He shows that std::async can be wrapped in a shared_future for repeatable get() calls, but it adds heap allocation and extra code, while call_once is tiny; exception behavior also differs.

    Raymond Chenmicrosoft.com2 min
  5. 5

    Magic statics vs. std::call_once

    Function‑local "magic" statics give you thread‑safe, one‑time init for static data, but they’re limited to static storage and shared across all instances. Use `std::call_once` (or a small `lazy<T>` wrapper) when you need per‑object lazy init or when the value isn’t a static. The post shows concrete code for both approaches, explains the pitfalls of using a static inside a member function, and ske…

    Raymond Chenmicrosoft.com3 min