Описание тега stm
Программная транзакционная память (STM) - это механизм синхронизации в параллельном программировании, который может выполнять группы операций с памятью атомарно. Использование транзакционной памяти (реализованной за счет оптимистической синхронизации) вместо блокировок устраняет риск тупиковой ситуации.
1
ответ
Насколько безопасен `unsafePerformIO (newTVarIO 0)`?
Я заметил эту идиому в Data.Unique: uniqSource :: TVar Integer uniqSource = unsafePerformIO (newTVarIO 0) {-# NOINLINE uniqSource #-} Гарантируется ли запуск только один раз?
25 дек '11 в 19:29
3
ответа
TMVar, но без буфера?
Я пытаюсь сделать общение между легкими нитями Haskell. Потоки хотят отправлять друг другу сообщения для общения и синхронизации. Я изначально использовал TMVar для этого, но я только что понял, что семантика неверна: TMVar будет хранить одно сообще…
13 июн '15 в 22:08
1
ответ
Конфликтующие архитектуры ЦП 1/13 при компиляции для Cortex M4
Раньше я компилировал код своего микроконтроллера с помощью arm-none-eabi-gcc/arm-none-eabi-g++, и все работало нормально. Я использую доморощенный бочонок gcc-arm-embedded на Mac. Вчера я обновил его, и теперь я получаю следующие сообщения об ошибк…
24 май '17 в 09:01
1
ответ
Обновление Clojure alter возвращает nil, а dosync не позволяет повторяться
РЕДАКТИРОВАТЬ: dosync создает себе функцию, поэтому вызывает recur интерпретируются как вызовы функции dosync генерироваться. Это след функции, которую я на самом деле сделал. Я думаю, что все было максимально просто. (defn change-to-ref [ref data] …
05 окт '16 в 16:10
1
ответ
Haskell в одну сторону `dupTChan`
Есть ли такая функция, как эта. Кроме того, когда вы делаете: newChan = dupTChanOneWay oldChan Все, что написано oldChan написано newChanа не наоборот?
04 апр '14 в 23:44
4
ответа
STM32F429 не получает сообщение CAN
Я использую микроконтроллер STM32F429, и мне нужно реализовать связь по шине CAN между CAN2 и PCAN View. Я могу передать сообщение от CAN2, но не могу получить никакого сообщения. Я использую трансивер CAN TJA1041A в микроконтроллере. Проблема в том…
05 дек '14 в 12:12
1
ответ
Выпуск инструкции по сборке
У меня есть небольшая проблема, какой набор инструкций мне нужно использовать, когда я использую неоптимизированные инструкции, что компилятор великолепен. У меня есть эта функция void, как это: void feed(void) { IWDG_ReloadCounter(); } Вот инструкц…
21 фев '14 в 21:44
1
ответ
cpputest на STM8 не удалось из-за нескольких основных
Я хочу использовать cpputest на STM8 и установить все необходимые инструменты для него. Я могу запустить cpputest на моем упрощенном коде. в моем главном файле, который принадлежит аппаратному обеспечению, у меня есть, конечно, основная функция. Но …
08 ноя '17 в 13:50
1
ответ
Уникальность типов вместо STM
Сообщение на форуме указывает на то, что вместо STM используются уникальные типы. Я не понимаю, что это говорит. Как типы уникальности предполагают решение проблемы, которую STM пытается решить, например, когда несколько потоков обновляют одну и ту…
15 янв '14 в 01:00
2
ответа
Haskell STM осколок TVAR
Я новичок в Haskell и STM и пытаюсь понять основную концепцию. В Haskell и функциональном программировании в целом, поправьте меня, если я ошибаюсь, нет такого понятия, как назначение. Я не могу писать x=3; все, что я могу сделать, это создать другу…
05 янв '13 в 14:35
1
ответ
Haskell STM: Как реализовать Obstruction Free STM с использованием Haskell?
Я хочу внедрить Obstruction Free STM (OFTM) с использованием Haskell для сравнения различных доступных политик управления конфликтами. Например, Транзакция T1 получает Tvar, скажем X, и все же совершает. Теперь другая транзакция T2 хочет получить до…
16 янв '15 в 09:53
2
ответа
ABA с программным обеспечением Clojure Transactional Memory
Мне было интересно, есть ли у Clojure встроенное решение проблемы ABA. Я создавал пример, который показывает эту проблему, но каким-то образом Clojure обнаруживает изменения. Это потому, что транзакции Clojure сравнивают ссылки, а не значения? Мой п…
10 май '17 в 13:33
0
ответов
Функция osMessageGet CMSIS-RTOS
Я работал над программным обеспечением, основанным на CMSIS-RTOS, и у меня проблема с функцией osMessageGet. Мое программное обеспечение состоит из четырех задач RTOS, и две из них обмениваются данными через osMessageQueue вместе с osPool. Одна зада…
30 июн '17 в 08:44
1
ответ
Измерение длины TChan
Мне нужно хранить буфер некоторых значений в STM. Потоки Writer должны контролировать размер буфера. Я начал реализовывать эту вещь, используя TChan, но потом обнаружил, что API не обеспечивает способ измерения длины канала. Будучи одним упрямым пар…
26 янв '13 в 23:41
3
ответа
Один атом против нескольких ссылок
Каковы компромиссы представления состояния с использованием одного атома и хэш-карты против нескольких ссылок? Например: (def start (atom {:location "Chicago" :employer "John"})) против (def location (ref "Chicago")) (def employer (ref "John")) Боль…
07 ноя '13 в 14:24
1
ответ
Есть ли в системе Zookeeper Watches ошибка или это ограничение теоремы CAP?
Документация Zookeeper Watches гласит: "Клиент увидит событие наблюдения для узла, который он наблюдает, прежде чем увидит новые данные, соответствующие этому узлу". Кроме того, "поскольку часы запускаются один раз, и между получением события и отпр…
21 июн '15 в 22:20
1
ответ
Переключатель рефакторинга или оператор if/else?
Я работаю над школьным проектом и получил отзывы от моего учителя. Он сказал, что в моем коде есть некоторые плохие практики, он сказал, что случаи переключения могут быть заменены полиморфным подходом. Только я понятия не имею, как я мог это сделат…
12 июн '17 в 07:29
1
ответ
СТМ и атомарно: почему семантика этих двух программ отличается?
Давайте рассмотрим эту простую программу на Haskell: module Main where import Control.Concurrent.STM import Control.Concurrent import Control.Exception import Control.Monad import Data.Maybe import Data.Monoid import Control.Applicative terminator :…
16 окт '14 в 08:09
2
ответа
Перемаркируйте номер темы в STM
Для презентации я бы хотел пометить номер темы моделирования темы STM (например, заменить "тема 40" на "тема 1"). Я, однако, не уверен, где я должен измениться (где хранятся номера тем?).
24 фев '18 в 03:27
1
ответ
СТМ с частичной атомарностью для некоторых телевизоров
Я делаю вещи с STM и использовал среди прочего TBQueue структура данных с большим успехом. Полезная функция, для которой я ее использую, включает чтение из нее на основе предварительного условия в TVar в принципе так: shouldRead <- readTVar shoul…
13 июн '13 в 21:22