lock free queue implementation