atomic<> volatile the next pointer