189 похожих чатов

День добрый. Я, наверное глупый вопрос задам, но кто как

поступает вот с такой задачей.
Вот есть программа которая работает по принципу фоновый цикл + прерывания. У меня есть переменная, которая изначально планировалась использоваться в фоне, а потом вот мне взбредет её использовать в прерывании. Есть какие ни будь способы это дело предусмотреть не используя volatile повсеместно? На первый взгляд на ум приходит только отключение прерываний в месте где используются переменные, которые могут использоваться в прерывании.

9 ответов

5 просмотров

привет. ну вообще просто делают функции чтения/записи с остановкой и возобновлением прерываний, но настолько ли это тебе критично?

jon-pedro Автор вопроса
Александр Баракин
привет. ну вообще просто делают функции чтения/зап...

Критичность лишь в том, что могут кривые данные считаться, если по середине чтения произойдёт изменение

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

jon-pedro Автор вопроса
Vyacheslav Olkhovchenkov
голову надо использовать не только для того, что б...

Немного не корректный пример, как мне кажется. Суть же в том, что если у меня данные хранятся разбито из-за разрядности и размера данных, то если я прочитаю первую часть данных, а потом изменю в прерывании, после чего вернусь обратно, то у меня будет половина старых бит и половина новых, что может быть критично

Andrey Ermakov
dis_irq;read;en_irq

либо функцию которая чет вернет когда данные точно готовы

А почему ты volatile не хочешь использовать то? Какие-то религиозные предпосылки? Ну и да, есть ещё такая штука, как примитивы синхронизации. Похоже пришло время почитать за них и их комбинацию с геттерами и сеттерами

Leonid Zaliubovskyi
А почему ты volatile не хочешь использовать то? Ка...

может там ide такая, что за исправление декларации деньги берет?

Vyacheslav Olkhovchenkov
может там ide такая, что за исправление декларации...

Умеешь заинтриговать, звучит как идея для стартапа

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
В дельфе нет никакого коробочного (без установки третьих либ) способа получить CallStack с расшифровкой отладочных символов?
notme
7
Приветики всем!)) Подскажите: есть функция, которая записывает число типа Cardinal в четыре байта, хранимые в TBytes. Можете помочь мне, показав, как должна выглядеть функци...
Моринаро
5
Карта сайта