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

 
 
> Поведение очередей в 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
Ответов
zltigo
сообщение Nov 23 2008, 21:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(klen @ Nov 23 2008, 22:11) *
ситуация...

Вообще-то для подобного одна из задач может пользовать xJustPeeking, или не использовать бесконечную блокировку, или.... В общем нужно конкретно смотреть.
Цитата
2.
3.

Исходники посмотреть smile.gif. А вообще, если по памяти, то слушают обе, но получит с максимальным приоритетом, а забокировавшая себя навечно соответственно слушать перестанет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 06:00
Рейтинг@Mail.ru


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