Описание тега atomic-swap
1
ответ
Реализация атомарной операции
я использую атомарную операцию, предоставляемую SunOs в , который void *atomic_cas_ptr(volatile void *target, void *cmp, void *newval); теперь, чтобы сделать пригодным для использования, я должен проверить, являются ли старые значения, возвращенные …
17 июн '11 в 11:26
1
ответ
unsafe.compareAndSwapInt первый аргумент menanig
Я расследую java.util.concurrent.locks.AbstractQueuedSynchronizerисходный код. Из нескольких мест вызывает compareAndSetState метод. /** * Atomically sets synchronization state to the given updated * value if the current state value equals the expec…
14 мар '17 в 11:48
1
ответ
Атомарная инструкция: Как другой поток может обновить значение, когда выполняются инструкции сравнения и обмена?
Насколько я понимаю, любые атомарные инструкции (compare_and_swap, test_and_test, fetch_and_add) выполняются как одна инструкция. Хотя они включают в себя несколько циклов / операций ЦП, они невидимы для потока / процесса. Если поток выполняет любую…
27 апр '15 в 01:29
2
ответа
Атомный обмен в GNU C++
Я хочу убедиться, что мое понимание верно. Подобные вещи хитры, поэтому я почти уверен, что что-то упустил. У меня есть программа, состоящая из потока в реальном времени и потока не в реальном времени. Я хочу, чтобы поток без RT мог поменять местами…
19 мар '10 в 15:15
2
ответа
OSCompareAndSwap (Mac OS X) эквивалентен CMPXCHG8B?
OSCompareAndSwap (Mac OS X) эквивалентен CMPXCHG8B?
19 мар '10 в 11:01
2
ответа
Как атомарно выполнить последовательную загрузку и сохранить операции?
Рассмотрим этот код в GCC 4.8.0: std::atomic<bool> a; std::atomic<bool> b; a.store( b.load() ); // want to be atomic Как я могу сделать строку выше, чтобы быть атомарной в целом? Другими словами, как получить атомное присвоение атомных п…
28 июл '13 в 21:04
3
ответа
AtomicSwap вместо AtomicCompareAndSwap?
Я знаю, что в системах MacOSX / PosiX существует атомарное сравнение и замена кода C/C++ через g++. Однако мне не нужно сравнение - я просто хочу атомарно поменять два значения. Доступна ли операция атомного обмена? [Все, что я могу найти, это atomi…
12 мар '10 в 23:27
2
ответа
Объявление Массива Указателей Volatile в C++
У меня есть структура под названием Ambigous, и внутри структуры у меня есть массив указателей на другие Ambigous. Я хочу использовать библиотеку OSAtomic.h, чтобы сделать CompareandSwaps. Однако у меня проблемы с получением массива для хорошей игры…
22 мар '11 в 19:04
2
ответа
Возможно создать AtomicReference, который может быть обменен атомарно?
Есть ли способ реализовать тип ссылки, значение которой может быть обменено на другой атомно? В Java у нас есть AtomicReference который может быть заменен локальной переменной, но не другой AtomicReference, Ты можешь сделать: AtomicReference r1 = ne…
25 янв '11 в 21:31
3
ответа
Есть ли атомный прирост с предварительными условиями проверки, чтобы атомное значение было меньше указанного значения?
В новой стандартной операции атомарного приращения C++ с предварительными условиями проверки перед увеличенным значением атомное значение было меньше указанного значения? Могу ли я сделать это проще и быстрее, чем следующий код? int atomic_inc(std::…
08 дек '12 в 13:55
1
ответ
Кросс-цепная совместимость
Я смотрю на совместимость цепей на сетевом уровне (например, Fabric - Corda, Sawtooth - Ethereum, Corda entr - Corda os), и мне было интересно, есть ли еще (техническая) информация / исследования / демонстрация по этой теме. Я прошел курс EdX HL онл…
19 июл '18 в 13:43
1
ответ
Может ли эта реализация Fast Atomic Lock работать?
У меня есть большая структура данных, которая использует чередование для уменьшения конкуренции за блокировку. Прямо сейчас я использую системные блокировки, но в 99,99% случаев блокировка не оспаривается и, кроме того, время, в течение которого бло…
13 июл '10 в 00:57
1
ответ
Атомное изменение нескольких строк в MySQL
У меня есть таблица MySQL в форме entryID (PK), UserID, entryName Каждый пользователь (как определено его userID) может создать любое количество записей в этой таблице, но для каждого пользователя entryName должно быть уникальным. Я хотел бы позволи…
24 мар '11 в 19:54
1
ответ
Обновление Atom висит внутри часового вызова Clojure
У меня возникла ситуация, когда я смотрю конкретный каталог на предмет изменений файловой системы. Если определенный файл в этом каталоге изменяется, я перечитываю его, прикрепляю некоторую существующую кэшированную информацию и сохраняю ее в atom, …
08 сен '16 в 13:51
1
ответ
Являются ли Win32 InterlockedIncrement и InterlockedExchange атомарными в разных процессах?
MSDN говорит, что взаимосвязанные функции предоставляют простой механизм для синхронизации доступа к переменной, которая используется несколькими потоками. Я не уверен, работают ли они между потоками нескольких процессов, если переменная находится в…
16 окт '14 в 04:27
1
ответ
GLIB: g_atomic_int_get становится NO-OP?
В более крупном фрагменте кода я заметил, что функции g_atomic_* в glib не выполняют то, что я ожидал, поэтому я написал этот простой пример: #include <stdlib.h> #include "glib.h" #include "pthread.h" #include "stdio.h" void *set_foo(void *ptr…
08 апр '11 в 13:53
2
ответа
Флаги GCC для атомарности и потоков C++0x
Я попытался скомпилировать этот базовый пример атомарности и потоков C++, хотя, когда мне нужно было скомпилировать файл main.cpp, gcc выдает несколько ошибок std lib, которые кажутся не связанными с моим кодом. main.cpp #include <thread> #inc…
19 окт '12 в 19:34
2
ответа
Свободный от блокировки обмен двух уникальных_ptr<T>
Обмен двух unique_ptrs не гарантированно является потокобезопасным. std::unique_ptr<T> a, b; std::swap(a, b); // not threadsafe Так как мне нужны атомарные перестановки указателей и мне нравится обработка владения unique_ptrЕсть ли простой спо…
17 мар '13 в 12:43
0
ответов
Атомный обмен с использованием NBitcoin.Litecoin
Я довольно новый, чтобы заблокировать цепь. Недавно я создал успешные транзакции тестовых сетей из Биткойна в Litecoin, а затем из Litecoin в Биткойн с использованием библиотек Nbitcoin и Nbitcoin.Altcoin. Теперь я хочу реализовать атомарный своп в …
09 апр '18 в 09:35
2
ответа
Какой правильный способ атомарного обмена двумя беззнаковыми 32-битными переменными (ULONG)?
Я нашел функцию InterlockedExchange, которая позволяет мне обмениваться двумя знаковыми 32-битными переменными (LONG). Но как правильно атомно обмениваться двумя беззнаковыми 32-битными переменными (ULONG) под Windows? Я не вижу очевидного способа с…
26 мар '14 в 18:49