Stylem to připomíná GCD.
Vykládám si to jako poctu
Nicméně co mi ještě vrtá hlavou, je, jaký datový typ přes ty kanály přenášet. Tady mám (void *), což je docela praktický, páč se tam dá protlačit v případě potřeby integer a za cenu pohlídání si případné alokace i cokoli přes pointer a velikost je předem známá, dá se alokovat staticky.
FreeRTOS má fronty udělaný přes makra tak, že se dá při vytvoření nastavit velikost přenášených dat, což je fajn, ale zas to kód znepřehledňuje. Implicitní kopírování by se mi líbilo víc než přenášení pointerů, ale nevím, jestli to za tu šarádu kolem stojí... Navíc chci kanály vytvářet dynamicky, což by to ještě komplikovalo... Nevím. Asi to nechám tak, jak to je, a doplním to nějakým hezkým alokátorem. Třeba
https://github.com/pavel-kirienko/o1heap