dispatch of delayed events in the face of full queues
Should delayed events be dispatched when expired
without regard to the presence of non-delayed events?
[Scenario] Consider a domain with non-empty event queues and
pending timers. At least one delayed event is past its expiration time.
[Edge Case] Consider a cyclic, “self-stimulating” state machine (or
interacting set of state machines) that spins with no delay.
The concept of ‘simulated time’ or ‘Discrete Event Simulation’ may
inform this discussion.
Again, like Event Dispatch (1), this should be part of the architecture definition. This could be handled like some operating systems handle threads/processes via a series of priority boosts until the neglected process gets a high enough priority to be handled.
I agree, this is an issue for the Platform Specific Model (PSM) to handle, similar to a stack overflow. The Plaform Independent Model (PIM) just assumes (and correctly so) that events are delivered. This is true for bridges as well as class instances. If there are explicit requirements on QoS, then that should either be modeled in the PIM or formulated as a requirement on the particular PSM.