class REFEREE:
race_start.publish (create {DATE_TIME}.make_now_utc)
class RACE_CONTROL:
race_start: EVENT_TYPE [DATE_TIME]
class SPRINTER:
race_start.subscribe (agent run_from_now)
run_from_now (t: DATE_TIME)
-- Record `t` as starting time and get running.
do
start_time := t
run
end
Event-based programming with agents