The idea of the temp allocator is that you release everything allocated with it at the end of the update loop, request handler, etc… using the free_all proc
But it’s a lot simpler than having to track every temp allocation. It’s just a simple arena allocator, so free_all just sets the pointer to the start of the arena and it’s up to you to be sure that you aren’t keeping any references to data in the arena across frame/request/whatever boundaries