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

 
 
> Поведение очередей в 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
Ответов
AndrewN
сообщение Nov 24 2008, 05:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(klen @ Nov 23 2008, 22:11) *
а вот что должно происходить если две или более задачи присосутся к одной очереди?
в моем тесте FreeRTOS поступает так.

Возможная, но не единственная опция. Другой способ называется message multicast или
message broadcast - по аналогии с широковещательным телевидением (Москва одна,
а телевизоров много...)

--
AN
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 24 2008, 07:11
Сообщение #3


Гуру
******

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



Цитата(AndrewN @ Nov 24 2008, 08:47) *
....

К чему это было?


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



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

 


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


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