Задать вопрос
@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, спасибо за коррективы
  • Вопрос задан
  • 155 просмотров
Подписаться 2 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы