-
- В case пропустите break и получите в точности тоже самое. - Скрипач(14.04.2019 20:39)
- Если указать компилятору -Wall -Werror, то не будет соблазна
пропустить ошибку. Eddy_Em(117 знак., Вчера, 09:28)
- Эдуард, Спасибо. Полирую исходники перед сдачей проекта. Удалось
задушить предупреждения в проторедах для GCC таким макаром: Nikolay_Po(393 знак., Вчера, 22:10)
- Вот что-то мне эти "протопотоки" априори не нравятся. Настолько,
что даже документацию читать не хочется. Eddy_Em(712 знак., Вчера, 22:21)
- Смысл в том, что тебе не нужно разводить и перетряхивать кейзы
самостоятельно. Ты просто пишешь в каждом потоке линейный код. И
вызываешь все потоки по-очереди в мейн луп. А оно само двигает
кейзы внутри потока, таким образом, обеспечивая пошаговое, не
блоикрующее выполнение задачи. Nikolay_Po(49 знак., Вчера, 22:24)
- Не очень получается "облегчение труда без операционной системы". Сплошь и рядом: подача команды датчику на измерение и он ответит ...когда-нибудь. Тут сразу с "неблокирующим" получается казус и необходимо добавлять промежуточные состояния. Эта же задача с RTOS пишется просто до примитивности что положительно сказывается как на скорости реализации проекта так и на количестве багов. Впрочем с RTOS в полный рост встает задача IPC и синхронизации потоков. - 3m(Сегодня, 11:32)
- На это тратится один таймер и вешается супервизор? Или "потоки"
элементарно являются функциями, которые поочередно вызываются? Eddy_Em(44 знак., Вчера, 22:35)
- Со слов "Разберемся теперь, как работают макросы." Несколько
примеров исходников объяснят суть реализации pt. Nikolaj(1 знак., Сегодня, 08:10, ссылка)
- Ну, теперь я еще больше запутался: по ссылке - реализация обычных
конечных автоматов, но "спрятанная под ковер". Зачем? Наглядней же
делать все "в лоб". - Eddy_Em(Сегодня, 09:19)
- Ссылка - описание "в двух словах с картинками" того что реализовано в "protothread Adam Dunkels", про них речь выше шла. И в КА переходы между "ветками" кода в зависимости от условий/состояний. В pt в общем случае код функции-треда выполняется линейно с возможностью не блокированного ожидания выполнения условия (таймаут, ожидание смены состояния флага). - Nikolaj(Сегодня, 12:29)
- Затем, что расстановка и добавление кейсов делается препроцессором автоматически! Nikolay_Po(346 знак., Сегодня, 12:21)
- Ну, теперь я еще больше запутался: по ссылке - реализация обычных
конечных автоматов, но "спрятанная под ковер". Зачем? Наглядней же
делать все "в лоб". - Eddy_Em(Сегодня, 09:19)
- В двух словах не объяснить. А я хотел бы. Но сейчас готовлюсь к
сдаче проекта, нет возможности. Nikolay_Po(642 знак., Вчера, 23:14)
- Ну, у меня подобные задачи просто "вложенными" конечными автоматами
решаются. - Eddy_Em(Сегодня, 09:17)
- Именно. Просто ты ещё не задолбался писать конечные автоматы под простые, линейные, но блокирующие задачи. - Nikolay_Po(Сегодня, 12:15)
- Конечные автоматы пишутся легко и просто. Вот кусок реального кода,
где в главном цикле вызываются пять конечных автоматов
последовательно каждую миллисекунду. Некоторые автоматы в свою
очередь, вызывают другие автоматы. Главное, чтобы нигде и ничто не
могло блокировать поток выполнения. Бoмж(250 знак., Сегодня, 09:07)
- Так это вы мой мэйн луп показываете. Там примерно так же, условно 5 строчек. Nikolay_Po(79 знак., Сегодня, 12:14)
- Вот-вот. У меня примерно так же: Eddy_Em(1511 знак., Сегодня, 09:28)
- Ну, у меня подобные задачи просто "вложенными" конечными автоматами
решаются. - Eddy_Em(Сегодня, 09:17)
- Со слов "Разберемся теперь, как работают макросы." Несколько
примеров исходников объяснят суть реализации pt. Nikolaj(1 знак., Сегодня, 08:10, ссылка)
- Смысл в том, что тебе не нужно разводить и перетряхивать кейзы
самостоятельно. Ты просто пишешь в каждом потоке линейный код. И
вызываешь все потоки по-очереди в мейн луп. А оно само двигает
кейзы внутри потока, таким образом, обеспечивая пошаговое, не
блоикрующее выполнение задачи. Nikolay_Po(49 знак., Вчера, 22:24)
- Вот что-то мне эти "протопотоки" априори не нравятся. Настолько,
что даже документацию читать не хочется. Eddy_Em(712 знак., Вчера, 22:21)
- А может __attribute__ ((fallthrough))? - Nikolay_Po(Вчера, 09:50)
- Переключите компилятор в режим С++ и будет вам [[fallthrough]] средствами языка. А также многое другое. - VladislavS.(Сегодня, 08:28)
- Уже давно достаточно комментария. А раньше - да, приходилось макрос
определять и писать FALLTHRU() где нужно… Eddy_Em(33 знак., Вчера, 12:05)
- Руки бы поотрывал!!! С каких это пор, комментарии стали влиять на
компиляцию? С этих пор и стали. - Nikolay_Po(Вчера, 13:30)
- Очень даже удобно. Уж не помню, с какой версии, но эти прагмы для fallthrough писать перестало быть нужным. Я бы так и с остальными прагмами, потому как хрен запомнишь, что там надо - каждый раз гуглить приходится (а часто используемое в макросах определять - те же true inline). - Eddy_Em(Вчера, 13:59)
- Это догматизьм. До добра не доведёт. - SciFi(Вчера, 13:39)
- Вы догматитзьм с православием не путайте! - Kpoк(Вчера, 13:41)
- Руки бы поотрывал!!! С каких это пор, комментарии стали влиять на
компиляцию? С этих пор и стали. - Nikolay_Po(Вчера, 13:30)
- Эдуард, Спасибо. Полирую исходники перед сдачей проекта. Удалось
задушить предупреждения в проторедах для GCC таким макаром: Nikolay_Po(393 знак., Вчера, 22:10)
- В некоторых компиляторах от этого помогает ключ -Wimplicit-fallthrough. - s_h_e(15.04.2019 15:04)
- В большинстве случаев от этого помогает форматирование текста. - Скрипач(15.04.2019 15:05)
- Диска С - mse homjak(15.04.2019 18:08)
- У меня его нет. - Скрипач(15.04.2019 18:17)
- "Тогда удалите какие-нибудь важные файлы..."(С) - mse homjak(15.04.2019 19:10)
- Могу ~/tmp удалить. Устроит? - Скрипач(15.04.2019 19:12)
- "Тогда удалите какие-нибудь важные файлы..."(С) - mse homjak(15.04.2019 19:10)
- У меня его нет. - Скрипач(15.04.2019 18:17)
- Когда программизд втыкает в код охреневший, потому что надо было уже вчера, а нихрена не работает, может и не помогать. - s_h_e(15.04.2019 15:09)
- Диска С - mse homjak(15.04.2019 18:08)
- В большинстве случаев от этого помогает форматирование текста. - Скрипач(15.04.2019 15:05)
- Если указать компилятору -Wall -Werror, то не будет соблазна
пропустить ошибку. Eddy_Em(117 знак., Вчера, 09:28)
- В case пропустите break и получите в точности тоже самое. - Скрипач(14.04.2019 20:39)