My worry with using a vector here is that it only 'releases' when the `Window` closes. Which means if they create a render_context each frame it will quickly become a memory leak.

Maybe a semaphore or some other locking could work? We just need to pause the thread until it is destroyed.