| |
| |
| Thread { thread_key, processor } |
| |
| | |
| | |
| |
| EventThread { event_mutex, |
| DLL<EventContinuation> timeout_events, |
| DLL<EventContinuation> free_events |
| } |
| |
| | |
| | |
| |
| IOThread { DLL<IOVConnection> io_events, |
| DLL<Connection> 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 |
| |