This new locking mechanism is very cumbersome, but highly
throughput maximizing. It trades high memory usage to gain
high throughput.
We may end up even being able to get the high throughput
without incurring the high memory usage by using std::bind
objects, etc.