Есть ли способ выполнить атомарные операции над неатомарным объектом? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Есть ли способ выполнить атомарные операции над неатомарным объектом? [дубликат]

Сообщение Гость »


У меня есть struct, содержащая целое число (скажем, int m_ref), обозначающее внутренний счетчик ссылок.

Чтобы обеспечить совместимость с C, я не могу изменить тип на std::atomic: struct может содержать только старые данные. Однако я хочу изменить свой код, чтобы использовать атомарные функции C++11; а именно мне нужно выполнить:

++m_ref; и

--m_ref; как атомарные операции. В настоящее время я использую для этого ассемблер (блокировки шины Intel), но этот код вряд ли переносим, ​​и я хочу удалить его сейчас, когда C++ предлагает стандартную конструкцию.

Как-то мне нужно проникнуть «под капот» и сделать то, что делает atomic, но без накладных расходов на создание атомарного типа: я боюсь, что присоединение m_ref к atomic< T> приведет к снижению производительности.

Я подозреваю, что это вполне стандартно, и мне здесь не хватает чего-то простого.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Требуют ли атомарные операции поддержки со стороны оборудования?
    Гость » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Атомарные операции над `unique_ptr`
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между экземпляром, объектом, объектом класса и объектом экземпляра в Python? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • Как внести атомарные изменения во многие контексты БД?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать атомарные обновления с откатом в Python?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»