Simple, fast, and practical non-blocking and blocking concurrent queue algorithms | Synapse