@Mercury13
Программист на «си с крестами» и не только

Правильно ли написан код, выдающий уникальные цифры, основанные на таймере?

// timer — общий на всю прогу atomic<long long>
// Можно рассчитывать только на 64-битную архитектуру

long long newTime = someUtcTime();
long long oldTime = timer;
do {
  newTime = std::max(newTime, oldTime + 1);     // должен быть больше того, что имеется
} while (!timer.compare_exchange_strong(&oldTime, newTime))
return (oldTime = newTime);

jcmvbkbc, спасибо за коррективы
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы