---
title: "Dealing with race conditions"
publication: "Go Weekly"
issue: 558
published_at: "2025-06-18"
canonical_url: "https://golangweekly.com/issues/558"
---

Plus a deep dive through our queue of missed items. |        

#​558 — June 18, 2025 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/558)  

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/agf0ixkovxtqkvmuhbnh.jpg)](https://antonz.org/go-concurrency/race-conditions/)  

[Dealing with Race Conditions in Go](https://antonz.org/go-concurrency/race-conditions/) — Anton has written [some fantastic posts](https://antonz.org/go-concurrency/) about concurrency in Go and this latest outing takes us deep into race conditions, including uncovering check-then‑set hazards, compare‑and‑set retries, idempotent Close patterns, TryLock caveats and a channel‑based “shared‑nothing” processor. 

Anton Zhiyanov   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/0b798f68.jpg)](https://frontendmasters.com/courses/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego) 

[Complete Go for Professional Developers](https://frontendmasters.com/courses/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego) — Craft production-grade APIs with Go, the language trusted by tech giants! Connect to Postgres, implement auth, and write tests that matter. Taught by a Twitch ML engineer who solves real problems with Go daily. 

Frontend Masters sponsor   

**IN BRIEF:** 

- 📊 [The SQLite Drivers 25.06 Benchmarks Game](https://pkg.go.dev/modernc.org/sqlite-bench#section-readme) presents the results of benchmarking `mattn/go-sqlite3`, `modernc/sqlite`, and `ncruces/go-sqlite3`, libraries which all take different approaches to interfacing with SQLite.
- 🇬🇧 [GopherCon UK 2025](https://www.gophercon.co.uk/) takes place this August and [the schedule is now live.](https://www.gophercon.co.uk/schedule)
- 🕹️ [NebuLeet](https://store.steampowered.com/app/3024370/NebuLeet/) is a new game on Steam that's built in Go using Ebitengine – it has a free demo available.
- 🎮 Talking of games, the [Ebitengine Game Jam](https://itch.io/jam/ebitengine-game-jam-2025) has just started – you get two weeks (well, eleven days as of now) to build and submit a game.   

[OpenTelemetry for Go: Measuring the Overhead](https://coroot.com/blog/opentelemetry-for-go-measuring-the-overhead/) — If your app is logging everything it does, that’s another job that can eat into the resources available to it. But by how much? Nikolay runs a benchmark here to find out. 

Nikolay Sivko   

📄 [Why I Made Peace With Go’s Date Formatting](https://preslav.me/2025/06/11/golang-date-formatting-is-fine/) Preslav Rachev 

📺 [Statically and Dynamically Linked Go Binaries](https://www.youtube.com/watch?v=6vuYl58PsGQ) package main 

📄 [Things You Never Wanted To Know About Go Interfaces](https://mcyoung.xyz/2024/12/12/go-abi/) Miguel Young de la Sota 

📄 [Writing a Load Balancer From Scratch in 250 Lines of Code](https://beyondthesyntax.substack.com/p/writing-load-balancer-from-scratch) Sushant Dhiman  

🛠 Code & Tools  

[TinyGo 0.38.0: Now with (Initial) Multicore Support](https://github.com/tinygo-org/tinygo/releases/tag/v0.38.0) — The Go compiler for ‘small places’ (mostly embedded systems and WebAssembly targets) gets its first multicore support initially targeting the RP2040. There’s also USB Mass Storage Device support for certain processors, and a new experimental GC for WASM to try. 

Ron Evans   

♟️ [Introducing Chess V2: A New Chess Library](https://brighamskarda.com/articles/introducing_chess_v2_a_new_chess_library_in_golang) — A library that implements the main logic of chess, including move generation, position parsing, and support for Portable Game Notation. There’s even [an example Go program](https://github.com/brighamskarda/chess?tab=readme-ov-file#example-game-against-dumb-computer) to let you play a (unskilled) game against it. [GitHub repo.](https://github.com/brighamskarda/chess) 

Brigham Skarda   

- [go-echarts 2.6](https://github.com/go-echarts/go-echarts) – Charting and data visualization library that uses Apache ECharts. You can [see examples in the docs.](https://go-echarts.github.io/go-echarts/#/en-us/charts/line)
- [VHS 0.10](https://github.com/charmbracelet/vhs) – CLI 'home video recorder'. _"Write terminal GIFs as code for integration testing and demoing your CLI tools."_
- [MCP-Go 0.32](https://github.com/mark3labs/mcp-go) – An implementation of the Model Context Protocol (MCP).
- [Netpoll 0.7.1](https://github.com/cloudwego/netpoll) – High-perf non-blocking I/O networking framework focused on RPC scenarios.
- [lakeFS 1.60](https://github.com/treeverse/lakeFS) – Git-like data version control for your data lake.
- [Delve 1.25](https://github.com/go-delve/delve) – Popular debugging tool for Go code.
- [Mockery 3.4](https://github.com/vektra/mockery) – Mock code autogenerator.      

📰 Classifieds   

🧠 Discern is hiring a senior full-stack Go/React dev to help automate entity compliance (US/LATAM). Join us:[https://wellfound.com/l/2zxcz1](https://wellfound.com/l/2zxcz1) 

--- 

🐘 PostgreSQL user? Check out our sister newsletter, [Postgres Weekly](https://postgresweekly.com/), for the latest Postgres news each Thursday.     

✂︎ Deep cuts from the queue  

As it's a quieter week than usual, we've gone back to look through our ever-growing queue of items which haven't yet made it into the newsletter for one reason or another. Here are some of the things that jumped out:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qyam1edcts9zm5niufjg.jpg)](https://github.com/glanceapp/glance)  

- [Glance](https://github.com/glanceapp/glance) _(above)_ is a Go-powered personal information dashboard/portal where you can bring together RSS feeds, Reddit posts, Hacker News posts, YouTube channel updates, stock prices, and more.
- Eli Bendersky demonstrates [how to build static binaries with Go on Linux](https://eli.thegreenplace.net/2024/building-static-binaries-with-go-on-linux/), including linking C into Go binaries and using Zig.
- Alejandro Sáez Morollón explains [how to package Go apps for Red Hat Enterprise Linux.](https://developers.redhat.com/articles/2024/12/10/how-package-go-applications-rhel-10)
- David Singleton posts about [writing a simple BASIC to Go transpiler.](https://blog.singleton.io/posts/2021-01-31-i-wrote-a-compiler/)
- 🎵 [NOSTALGIA](https://github.com/fred1268/nostalgia) is a 90s style demoscene demo written in Go and using Ebitengine. You can [▶️ watch a video sample here.](https://fred1268.github.io/assets/nostalgia/video.mp4)
- [Boxes and Glue](https://github.com/boxesandglue/boxesandglue) is a TeX-inspired PDF typesetting library.
- [Glojure](https://github.com/glojurelang/glojure) is a Clojure interpreter, hosted on Go.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Go is a [trademark of Google](https://go.dev/brand).
The [Go gopher](https://go.dev/blog/gopher), whenever used, is an original creation by Renée French. 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
