Casey introduced the idea of a transient memory block that can be rebuilt when needed from the persistent memory. This means that the memory block can be reclaimed and rebuilt on demand for example when the user pauses and resumes the game. I really like that idea.
When the code was all single-threaded everything was nice and simple. However, now (I am at day 150) the transient block is also being accessed from threads (ground chunk composition).
What happens if the OS wants to reclaim the transient memory while it is still in use in the background? Does the game have a mechanism that inhibits the OS from removing the transient block while the threads are still using it? If not, how will this be managed in the future?
One way would be to let the OS signal the threads to stop and only reclaim the memory when they have exited, but that seems pretty complex. All transient-related background code would have to listen for a signal and implement some kind of early out.
This whole thing might be unproductive premature speculation but I am curious :-)