Simulating Infinity in Conway's Game of Life with Modern C++
ryanjk5.github.io
Simulating Infinity in Conway's Game of Life with Modern C++
1–10 of 15 posts
Re: Simulating Infinity in Conway's Game of Life with Modern C++
#2Should I use a mutex for each cache instance? As a beginner developer, my guess is that the original author assumes data races won't occur based on the execution timing. However, I'm really not sure if that assumption is actually correct/safe.
Re: Simulating Infinity in Conway's Game of Life with Modern C++
#3Re: Simulating Infinity in Conway's Game of Life with Modern C++
#4Re: Simulating Infinity in Conway's Game of Life with Modern C++
#5Re: Simulating Infinity in Conway's Game of Life with Modern C++
#6Re: Simulating Infinity in Conway's Game of Life with Modern C++
#7Small nit, this - https://ryanjk5.github.io/assets/2026-05-14-GOLDE/torus.gif - is not what's conventionally referred to as a torus in CGoL. In torus left and right edges are also connected.
Re: Simulating Infinity in Conway's Game of Life with Modern C++
#8"I had heard the rumors that C++ was a scary language filled with footguns and segmentation faults, but I had never given it a fair chance myself" - props for this. There's too much hearsay in software engineering.
Re: Simulating Infinity in Conway's Game of Life with Modern C++
#9It seems like the thread_local CacheIndex only determines which cache to use, but it doesn't actually guarantee thread safety for concurrent access to the HashLifeCache itself. What would be a good solution for this? Should I use a mutex for each cache instance? As a beginner developer, my guess is that the original author assumes data races won't occur based on the execution timing. However, I'm really not sure if t…
Re: Simulating Infinity in Conway's Game of Life with Modern C++
#10"I had heard the rumors that C++ was a scary language filled with footguns and segmentation faults, but I had never given it a fair chance myself" - props for this. There's too much hearsay in software engineering.
And then immediately afterwards we see const T* in a supposedly immutable data structure meaning the pointer remains mutable. Yet another classic footgun.