On Wed, Jul 18, 2018 at 1:45 PM Ben Peart <Ben.Peart@xxxxxxxxxxxxx> wrote: > Did you have any further considerations that are worth recording here? (memory, performance, CPU execution, threading, would all come to mind) > Signed-off-by: Ben Peart <benpeart@xxxxxxxxxxxxx> > +/* > + * Initializes a mpmcq structure. > + */ I'd find the name mpmcq a bit troubling if I were just stumbling upon it in the code without the knowledge of this review (and its abbreviation), maybe just 'threadsafe_queue' ? > +extern void mpmcq_init(struct mpmcq *queue); We prefer no extern keyword these days c.f. Documentation/CodingGuidelines: - Variables and functions local to a given source file should be marked with "static". Variables that are visible to other source files must be declared with "extern" in header files. However, function declarations should not use "extern", as that is already the default.