/ / Са sig_atomic_t и std :: атомен <> взаимозаменяеми? - c ++, сигнали, атомни

Са sig_atomic_t и std :: атомните <> взаимозаменяеми? - c ++, сигнали, атомни

Според заглавието. Мога ли да използвам std::atomic<> в манипулатор на сигнали или не sig_atomic_t да осигурите други функции на компилатора?

Отговори:

14 за отговор № 1

n3376 1.9 / 6

Когато обработката на абстрактната машина се прекъсва чрез получаване на сигнал, стойностите на обектите, които нито са

- от тип летливи std :: sig_atomic_t нито

- атомни предмети без ключалка (29.4)

са неуточнени по време на изпълнението на обработващия сигнала и стойността на всеки обект, който не е в нито една от тях тези две категории, които се променят от ръководителя, не се дефинират.

Без заключване 29,4 / 1,2

В ATOMIC _..._LOCK_FREE макросите показват безжично свойство на съответните атомни типове, с подписаните и неподписани варианти, групирани заедно. Свойствата се прилагат и за съответните (частични) специализация на атомния шаблон. Стойността 0 показва, че типовете никога не са заключени. Стойност от 1 показва, че типовете понякога не са заключени. Стойност 2 показва, че типовете винаги са без заключване.

Функцията atomic_is_lock_free (29.6) показва дали обектът не е заключен. Във всяка програма изпълнението на заявката без заключване трябва да бъде съвместимо за всички указатели от същия тип.