I found a less invasive way to clean up the log race condition, I made the BufferSwapper a Monopoly. This does mean that it will waste several threads worth of time in serialized code at the moment, but I have a few ideas for tha, and hopefuly the serialized work will be minimal.