In version 27 of Snowdrop OS I introduced a messaging system which allows kernel and intra-task communication. Consumers are subscribed to specific message types. Messages (with arbitrary contents) are published and the consumers receive them.
By letting the kernel manage these consumers, two advantages are gained over regular, chained interrupt handlers:
- unlike interrupt handlers, message consumers do not need to invoke "previous" handler
- also, message consumers do not need to concern themselves with saving or restoring "previous" handler
To find out more, visit the Snowdrop OS pages