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

 
 
> Поведение очередей в 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



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:30
Рейтинг@Mail.ru


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