Queue Service Information


#1

:question:

Hey guys,

So I figure it makes sense using the queue service to store data I am accumulating via one process and then have another process to read and process that data once I find a terminator charcter. The “regular” way I have done this before is to implement a ringbuffer which I could make as complex as I need for the particular application, however starting to play with the queue service leads me to a bunch of questions.

  1. Where is the queue created?
  2. What size can the queue be? (The OpenAT tut mentions that an exception 144 can be triggered if too many items are added too the queue :open_mouth:)
  3. Are copies of the data being pushed into the queue made, or simply pointers to the variables containing the data?

I am using a single task so suppose this is not used for its full purpose. I have looked through the OpenAT tutorial and ADL users guide and they both really say the same.

Regards,
Tyrone


#2

As far as I know adl_queue doesn’t make copies of pushed items, it simply operates on pointers.
Nice idea would be to dynamicaly allocate elements and push them into queue, when another task pops items consumes them somehow and releases memory using free()