<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Lock-Free on guy@secdev.uk</title>
    <link>https://www.secdev.uk/blog/tags/lock-free/</link>
    <description>Recent content in Lock-Free on guy@secdev.uk</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <copyright>Guy Dixon | guy@secdev.uk</copyright>
    <lastBuildDate>Sat, 09 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.secdev.uk/blog/tags/lock-free/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Concurrency Bugs: Mutexes, Atomics, and Lock-Free Pitfalls</title>
      <link>https://www.secdev.uk/blog/technology/2026-05-09-concurrency-bugs-mutexes-atomics-lock-free/</link>
      <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
      <guid>https://www.secdev.uk/blog/technology/2026-05-09-concurrency-bugs-mutexes-atomics-lock-free/</guid>
      <description>&lt;p&gt;Concurrency bugs are, hands down, the hardest defects to find, reproduce, and fix. They hide behind timing windows, disappear the moment you attach a debugger, and come roaring back under production load. In this post, I want to go beyond basic race conditions and dig into the subtle pitfalls of mutexes, atomic operations, and lock-free data structures, the tools developers reach for when they think they&#39;re writing safe concurrent code. The more I researched these patterns, the more I realised these tools create a false sense of security that can be worse than having no synchronization at all.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
