xQueueSelectFromSet set order
Posted by https://www.google.com/accounts on February 27, 2013
In which order are returned queues or semaphores if e.g. both binary semaphores were given?
I mean a use case on ARM CM3. During ISR0 a binary semaphore A is given . Meanwhile a different interrupt with the same priority occurs, it is pended waiting for the end of the ISR0. The ISR1 gives a semaphore B.
Both semaphores (A and B) belongs to a queue set C and were added in this order xQueueAddToSet(A), xQueueAddToSet(B).
If I call xQueueSelectFromSet(C) before ISR0, will be the semaphore A returned? And if I call xQueueSelectFromSet(C) again, will be the semaphore B returned immediately?
Thank you for explanation.
RE: xQueueSelectFromSet set order
Posted by Richard
on February 27, 2013
The order in which queues are added to a queue set is not important. The queue set reports events in the order in which the events are received. Therefore if semaphore A and semaphore B are in the same set, and semaphore A is given before semaphore B, then the queue set returns the handle of semaphore A first whatever. Likewise if semaphore B is given before semaphore A then the queue set will return the handle of semaphore B whatever.
Hope this helps.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.