-
- Враки. Вполне себе веб сервер и всё остальное без всяких ртос. Веб сервер может задержать главный цикл на десяток миллисекунд, в огромном множестве задач это не проблема. Опять же гарантированный отклик можно и нужно делать на прерываниях, а там SciFi(28 знак., 20.09.2019 09:34)
- Если самописный. Но это велосипед с квадратными колесами. - Скрипач(20.09.2019 10:47)
- Но с легкой восьмеркой можно же ехать. Вопрос, где грань. - VLLV(20.09.2019 11:10)
- А грани - нету. Есть градиент Скрипач(75 знак., 20.09.2019 12:21)
- Истину глаголеш! - Codavr(20.09.2019 12:50)
- А грани - нету. Есть градиент Скрипач(75 знак., 20.09.2019 12:21)
- Нет, в составе lwip. Он там довольно толково сделан. Только доки нет. Но когда разберёшься - песня. - SciFi(20.09.2019 10:50)
- SciFi, а можете подсказать, как пользоваться PT_YIELD() ? Что-то смотрел во что оно разворачивается, но понятней не стало. Ещё вопросы вызывает локальная нестатическая переменная PT_YIELD_FLAG и Dingo(132 знак., 05.12.2019 15:44)
- Вообще, yield по-буржуйски - "уступать". То есть в этой точке однократно прервать выполнение потока, оно продолжится при следующем вызове PT_SCHEDULE(). Зачем это нужно? Например: SciFi(347 знак., 05.12.2019 16:02)
- Спасибо. Перевод слова и что делает вызов я как-бы знаюно мог и не знать, часто - чтобы разорвать длинный цикл, например перебора большого массива элементов. Dingo(304 знак., 05.12.2019 16:15)
- Ну да, именно разорвать, чтобы не тормозить другие потоки. А у меня "if (PT_YIELD_FLAG) {;}" нету. У вас, наверное, не ванильная версия. О! В сорцах contiki эта штука есть. Я качал отсюда --> SciFi(263 знак., 05.12.2019 16:19 - 16:24, ссылка)
- Верно, не 1.4, а из комплекта Contiki-NG. Проверил, в 1.4 нет такого. С чего бы? - Dingo(05.12.2019 16:24)
- Дополнил выше. - SciFi(05.12.2019 16:24)
- Верно, не 1.4, а из комплекта Contiki-NG. Проверил, в 1.4 нет такого. С чего бы? - Dingo(05.12.2019 16:24)
- Ну да, именно разорвать, чтобы не тормозить другие потоки. А у меня "if (PT_YIELD_FLAG) {;}" нету. У вас, наверное, не ванильная версия. О! В сорцах contiki эта штука есть. Я качал отсюда --> SciFi(263 знак., 05.12.2019 16:19 - 16:24, ссылка)
- Спасибо. Перевод слова и что делает вызов я как-бы знаюно мог и не знать, часто - чтобы разорвать длинный цикл, например перебора большого массива элементов. Dingo(304 знак., 05.12.2019 16:15)
- Вообще, yield по-буржуйски - "уступать". То есть в этой точке однократно прервать выполнение потока, оно продолжится при следующем вызове PT_SCHEDULE(). Зачем это нужно? Например: SciFi(347 знак., 05.12.2019 16:02)
- +1. Иногда самодельные решения лучше, потому, что они РАБОТАЮТ и обладают, как ни странно, меньшей и обозримой сложностью. В стороннем ПО может быть масса проблем и стоимость их исправления запросто превысит бюджет текущего проекта. - fk0(20.09.2019 11:32)
- SciFi, а можете подсказать, как пользоваться PT_YIELD() ? Что-то смотрел во что оно разворачивается, но понятней не стало. Ещё вопросы вызывает локальная нестатическая переменная PT_YIELD_FLAG и Dingo(132 знак., 05.12.2019 15:44)
- Но с легкой восьмеркой можно же ехать. Вопрос, где грань. - VLLV(20.09.2019 11:10)
- Суть только в том, есть ли у тебя блокирующие функции (ожидающие чего-либо до возврата, какого-либо события) и функции выполняющие вычисления длительное время. Обычно проще иметь первое и второе, чем разбивать до совсем уж автоматов. Но и первое и fk0(253 знак., 20.09.2019 10:17)
- Обычно блокирующие вызовы будут. Простой пример: если записать файл можно и в фоне (свободное от всего остального время), то необходимость чтения блокирует задачу (опять же, если задача не проверяет "is-readable?". - Dingo(21.09.2019 18:57)
- Как правило, блокирующую функцию или длительное вычисление можно разбить на части, и проблема уходит. Да, некий дополнительный геморрой, зависит от конкретной ситуации. Если же код чужой, лезть туда не комильфо, проще RTOS накатить. - SciFi(20.09.2019 10:25)
- IMNHO постоянно смешивают понятия "многозадачность" и "вытеснение", а это как теплое и мягкое - Vit(20.09.2019 10:15)
- Если самописный. Но это велосипед с квадратными колесами. - Скрипач(20.09.2019 10:47)
- Враки. Вполне себе веб сервер и всё остальное без всяких ртос. Веб сервер может задержать главный цикл на десяток миллисекунд, в огромном множестве задач это не проблема. Опять же гарантированный отклик можно и нужно делать на прерываниях, а там SciFi(28 знак., 20.09.2019 09:34)