Parallel Programming stack elimination msqueue fine grained bank linked list set dijkstra monotonic clock universal construction mcs lock faa queue synchronous queue lock free bank stm bank blocking stack