-
- А что не так с переменной-копией? И вот ещё такой приём бывает: SciFi(292 знак., 16.04.2022 09:28)
- Да, спасибо, тоже вариант, когда критические секции не желательны. Argon(259 знак., 16.04.2022 09:35)
- Нужна - не нужна... Это такие семечки, что об этом даже думать не
надо. Экономия на спичках ведёт к попадалову. - SciFi(16.04.2022 09:36)
- это так - Argon(16.04.2022 09:38)
- Нужна - не нужна... Это такие семечки, что об этом даже думать не
надо. Экономия на спичках ведёт к попадалову. - SciFi(16.04.2022 09:36)
- Да, спасибо, тоже вариант, когда критические секции не желательны. Argon(259 знак., 16.04.2022 09:35)
- Если кортекс, то LDREX/STREX/CLREX - Oman(15.04.2022 18:56)
- Если не хочешь дополнительную переменную, Tyмблep(252 знак., 15.04.2022 17:24)
- тоже вариант, спасибо - Argon(15.04.2022 18:23)
- Во втором варианте скрытый баг. Tyмблep(67 знак., 17.04.2022 11:45)
- да ладно, решил не пожопиться на мутексы... - Argon(17.04.2022 12:24)
- Мутексы тут ни при чем. Tyмблep(416 знак., 17.04.2022 20:08)
- Не-не, указатель передавать - это один из вариантов, и я не стал
его применять. Тем не менее возможность исключительных ситуаций у
меня имеется. Однако мутекс им как будто не препятствует,
а критическая секция - наверняка. Argon(89 знак., 17.04.2022 20:20)- Никто не препятствует исключительным ситуациям. Tyмблep(400 знак., 17.04.2022 20:31)
- я пока не понял, почему нельзя разлочивать объект синхронизации в
try-catch, но на 0 поделить попробую ) Правда, я чаще делаю явные
проверки и обработку исключений не планировал вообще, т.с. наследие
C... - Argon(17.04.2022 20:45)
- А что тут понимать? Tyмблep(546 знак., 17.04.2022 21:16)
- Пока, таки, решил через мутексы оставить, в несколько строчек -
один лок, и несколько анлоков при выходах из процедур. Может, потом
переделаю на критические секции, но это надо задуматься - внутри
есть вызовы длительных процедур (потокобеспроблемных). Их придется
изолировать от критических секций (чтобы не было лагов), будет не
очень красиво, с мутексами красивше. Но это все потом, когда
устаканится общая архитектура. - Argon(17.04.2022 21:30)
- Объект синхронизации может быть любым, это не важно. Tyмблep(311 знак., 17.04.2022 22:18)
- Пока, таки, решил через мутексы оставить, в несколько строчек -
один лок, и несколько анлоков при выходах из процедур. Может, потом
переделаю на критические секции, но это надо задуматься - внутри
есть вызовы длительных процедур (потокобеспроблемных). Их придется
изолировать от критических секций (чтобы не было лагов), будет не
очень красиво, с мутексами красивше. Но это все потом, когда
устаканится общая архитектура. - Argon(17.04.2022 21:30)
- А что тут понимать? Tyмблep(546 знак., 17.04.2022 21:16)
- я пока не понял, почему нельзя разлочивать объект синхронизации в
try-catch, но на 0 поделить попробую ) Правда, я чаще делаю явные
проверки и обработку исключений не планировал вообще, т.с. наследие
C... - Argon(17.04.2022 20:45)
- Никто не препятствует исключительным ситуациям. Tyмблep(400 знак., 17.04.2022 20:31)
- Не-не, указатель передавать - это один из вариантов, и я не стал
его применять. Тем не менее возможность исключительных ситуаций у
меня имеется. Однако мутекс им как будто не препятствует,
- Мутексы тут ни при чем. Tyмблep(416 знак., 17.04.2022 20:08)
- да ладно, решил не пожопиться на мутексы... - Argon(17.04.2022 12:24)
- Во втором варианте скрытый баг. Tyмблep(67 знак., 17.04.2022 11:45)
- тоже вариант, спасибо - Argon(15.04.2022 18:23)
- Для атомарного доступа проще использовать критические секции
(запрет/восстановление прерываний) - il-2(15.04.2022 17:09)
- Проще, но почему-то автор оси не рекомендует злоупотреблять. - Argon(15.04.2022 18:22)
- Ага. А мютекс можно. Если посмотришь реализации всех этих мютексов,
семафоров и событий, обнаружишь там те-же критические секции, и не
на одну команду, а на блоки команд. - il-2(16.04.2022 07:07)
- Похоже, я понял, что имел ввиду автор ОСи. Разделение доступа к ресурсу (в моем случае к структуре) везде должно осуществляться одним способом - либо мютексы, либо критические секции. Критическая секция годится для относительно мелких объектов и коротких действий. А для более объемных мероприятий - мютекс, т.к. критическая секция в этом случае будет вносить лаги в реакцию системы на прерывания. - Argon(16.04.2022 10:40)
- Ага. А мютекс можно. Если посмотришь реализации всех этих мютексов,
семафоров и событий, обнаружишь там те-же критические секции, и не
на одну команду, а на блоки команд. - il-2(16.04.2022 07:07)
- Проще, но почему-то автор оси не рекомендует злоупотреблять. - Argon(15.04.2022 18:22)
- Для uint16_t хватило бы std::atomic<uint16_t>, если у вас
гарантированно несколько потоков. Вообще мьютексы нужны для величин
шире размера шины данных - lloyd(15.04.2022 16:50)
- Спасибо! - Argon(15.04.2022 17:07)
- А что не так с переменной-копией? И вот ещё такой приём бывает: SciFi(292 знак., 16.04.2022 09:28)