Сделать отдельную структуру-очередь. К примеру на основе кольцевого списка. Далее один модуль в него добавляет оповещение. У других модулей есть функция вроде process_events(), которая вызывается где-то в основном цикле. Эта функция проверяет наличие оповещений и обрабатывает их, если они есть.
Т.е. развернуть модель работы с push на poll.
Второй вариант — реализовать концепцию указателей на функции поверх существующих средств, в прошлой подобной теме я уже про это писал, повторяться не буду.