И получится Quantum Leap он же state-machine.com. И сразу будут
спрашивать, "а что если очередь событий переполнится". И ведь
переполняется бывает. С очередью есть одна принципиальная проблема:
события из очереди обрабатываются в порядке очереди. И если она
одна на всё, то возможен "шторм событий", когда некоторые события
попавшие на вход генерируют достаточно большое количество
внутренний событий, и так рекурсивно. И если на вход поступает
сразу много "проблемных" событий, то очередь переполняется и вся система разваливается. И оценить необхоимый размер очереди не проще чем объём памяти зарезервированный для стека -- чистое <strike>шаманство</strike> эвристика.
Я поэтому и говорю об атомарных событиях, которые или произошли, или нет: прочая информация, если она нужна, должна передаваться через другие механизмы (fifo-буфер, другая очередь событий специфичная только для событий определённого типа и т.п.)
Опять же очередь событий подразумевает что все события попадают в какое-то одно место. А получатели разные. Стало быть нужен механизм подписки (вот плавно подходим к планировщику) или широковещательных сообщений (когда из одной очереди, в которую пишут все, оно дублируется в очереди компонентов подписанных на сообщения определённых типов). Обрастает сомнительными сложностями.