cross thread data passing lock-free queue