реклама на сайте
подробности

 
 
> Поведение очередей в FreeRTOS, разумное поведение
klen
сообщение Nov 23 2008, 19:11
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



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

а вот что должно происходить если две или более задачи присосутся к одной очереди?
в моем тесте FreeRTOS поступает так.
1. И первая и вторая задачи бесперпятсятвенно вызывают QueueGenericReceive и блокируются.
2. Видимо обе ждут записи в очередь
3. при записи чтение выполняет та которая?? первая присосалась, а вторая навечно заблокирована.
4. есть предположение что читать будет всегда активный поток


отсюда вопросы
1. Это так и должно быть? я думаю что не меее разумно былобы в случае второй задачи вернуть код ошибки о том что очередь уже кемто читается.
2. кто действительно будет слушать очередь - тот кто первый или как?
3. что будет и что должно быть если первая присосавшаяся к очереди сам себя заблокирует, будет ли другая задача читать очередь.

вобщем изза этого недопониманя я долго ловил баг в своей програмке smile.gif пока не понял что к очереди присосавшись было два желающих читать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Maddy
сообщение Nov 24 2008, 11:28
Сообщение #2


Участник
*

Группа: Validating
Сообщений: 56
Регистрация: 15-10-06
Пользователь №: 21 335



В догон - с форума FreeRtos
тут

Цитата
It is definitely possible, and the tasks get served in priority order. If a high and low priority task are blocked on the same queue and data arrives the high priority task will get the data, if the high priority task reads the queue again without blocking in between then it will also get the next data. If the high priority task blocks or delays, then the low priority task is the only task waiting on data and will get the next data to arrive.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 14:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016