title: asyncore.loop doesn't terminate when there are no more connections
body: <p>I am following some example code to use <code>asyncore</code> <a href="http://www.doughellmann.com/PyMOTW/smtpd/" rel="nofollow">here</a>, only having set a <code>timeout</code> value for <code>asyncore.loop</code> as in the following full example: </p>
  
  <pre><code>import smtpd
  import asyncore
  
  class CustomSMTPServer(smtpd.SMTPServer):
  
      def process_message(self, peer, mailfrom, rcpttos, data):
          print 'Receiving message from:', peer
          print 'Message addressed from:', mailfrom
          print 'Message addressed to  :', rcpttos
          print 'Message length        :', len(data)
          return
  
  server = CustomSMTPServer(('127.0.0.1', 1025), None)
  
  asyncore.loop(timeout = 1)
  </code></pre>
  
  <p>I have expected that a timeout occurs after 1 second, but this is not the case. The code runs much longer for than one second. What am I missing here?</p>