I'm working on some linked lists that get modified both inside and outside ISRs, and sometimes result in corruption. I've tried to wrap all the relevant bits that modify the list in ATOMIC_BLOCK macros, but ultimately, the same thing happens. If I throw too much data at the list too fast, it gets confused.
Rather than struggling to create my own, I was hoping there was an existing void* list that was statically allocated and ISR/Thread safe that I might be able to use. Does anybody know of one? If none exists, I'll post my code and ask for anybody's help diagnosing it.