Tech News
← Home  ·  All topics

Concurrency

4 GoKawiil briefs on this topic

Go community details goroutine leak detection challenges, points to profiling techniques

A technical write-up by Vlad Saioc examines how Go's goroutine-based concurrency model can produce 'leaked' goroutines that block indefinitely and never release memory or resources. The piece explains that while tools like the goleak library and Go 1.25's new synctest package help catch such leaks during unit testing, neither can reliably detect leaks in live production systems at scale, leaving goroutine profiles as one of the few practical diagnostic options.

Oracle Ships JDK 27 as Java's Latest General Availability Release

JDK 27, the reference implementation of Java 27, has reached General Availability after build 35 passed as the second release candidate with no critical bugs found. The release bundles nine JDK Enhancement Proposals, including G1 as the default garbage collector everywhere, post-quantum hybrid key exchange for TLS 1.3, compact object headers by default, and further previews of structured concurrency and pattern matching features. Oracle's GPL-licensed OpenJDK builds are already available for download, with other vendors expected to follow.

Deep dive exposes ThreadSanitizer's blind spots in detecting data races

An in-depth technical analysis examines how ThreadSanitizer, the race detector underlying Clang, GCC, Go, and Swift, actually works internally by walking through data race fundamentals and building a Python-based FastTrack-style vector clock simulation. The piece then demonstrates concrete scenarios where TSan's architecture causes it to miss genuine data races, including a documented failure once a program crosses 255 total threads.

Study Finds Async/Await Behaves Differently Across Seven Language Runtimes

A research paper titled 'A Design Space Exploration of Async/Await' tested a simple fire-and-forget logging program across seven modern async runtimes and found four distinct output patterns. The authors report that across three variations of the same small program, no two runtimes ever produced identical results, despite all using the same async/await keywords.