Are queue writes atomic?

rkt-tech wrote on Monday, December 29, 2008:

Are queue writes atomic?

For example, if I have a task that writes an 80-character string to a queue using xQueueGenericSend, and an interrupt comes along and tries to write to the same queue using xQueueGenericSendFromISR, what happens?  Is the task write guaranteed to finish before the interrupt takes over?

davedoors wrote on Tuesday, December 30, 2008:

Queue writes are atomic but its not a good idea to store 80 character strings in a queue. Much better to store a pointer to the string.

rkt-tech wrote on Tuesday, December 30, 2008:

>> its not a good idea to store 80 character strings in a queue.
>> Much better to store a pointer to the string.

Good morning, Dave.

Yes, I agree.  But, it’s not my code :-).  I’m doing modifications to existing code, and changing the way queues are used is beyond the scope of my job description unless I come up with a really good reason.  And, what is there now does work, so not really a compelling reason to change it unless I run into trouble.

Thanks for the info…