        
        
             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

