

             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

