Есть ли гарантия безопасности потоков std::chrono даже в многоядерном контексте?

Во-первых, я предполагаю, что вызов любой функции std::chrono гарантированно будет потокобезопасным (без неопределенного поведения или условий гонки или чего-либо опасного, если вызывается из разных потоков). Я прав?

Далее, например, в Windows существует хорошо известная проблема, связанная с многоядерными процессорами, которые вынуждают некоторые реализации связанных со временем систем позволять заставлять конкретное ядро получать любую информацию о времени.

Что я хочу знать, так это:

  1. Используя std::chrono, в стандарте, есть ли какая-либо гарантия, что мыслить проблемы не должны появляться?
  2. или это реализация определена
  3. , или есть явное отсутствие гарантии, которая подразумевает, что в Windows вам лучше получать время всегда из одного и того же ядра?

14
задан Klaim 5 June 2012 в 09:23
поделиться