Does anyone out there feel the need to post/retrieve multiple items from a queue in one call?
If you get items one by one, a lot of overhead is generated. It would be much more efficient to call the memcpy in prvCopyQueueData() only once.
For the receiving case I would like to propose a function which blocks the calling task until the number of requested items are received, or exits after the specified number of timeout ticks.
If a timeout occurs, the function can either return nothing or the items which have been retrieved.
How about having the code stuffing data into the queue use larger number of bytes? It puts in a whole structure at a time for example, rather than one byte at a time.
That’s easy: call xQueueCreate with as 2nd argument the size of your struct.
xQueueSend and xQueueReceive accept a pointer to the base of your struct variable
My problem is how to post a variable number or items.