implemention of lock free queue