An Efficient Unbounded Lock-Free Queue for Multi-core Systems