Thread { thread_key, processor } | | EventThread { event_mutex, DLL timeout_events, DLL free_events } | | IOThread { DLL io_events, DLL free_connections; } / \ / \ DNSThread AcceptThread VConnection | | EventContinuation / \ / \ IOVConnection DNSEntry / \ \ / \ \ \ \ DiskIOVConnection \ \ NetIOVConnection \ DNSIOVConnection Processor | | EventProcessor | | IOProcessor / \ / \ \ DiskProcessor NetProcessor | | DNSProcessor class VConnection: ================== vio_queue : queue of io operations. read_vio : current read vio. wrire_vio : current write vio. Thread: ======= Processor: a reference to the processor that started the thread. EventThread: ============ timeout_events: a list (DLL) of EventContinuation free_events: IOThread: ========= io_events: list of IOVConnection