SF bug #892492:  Multiple close() for asyncore.dispatcher.
(Contributed by Alexey Klimkin.)

Don't keep the file descriptor after the channel is deleted.
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index fa70e19..c886f92 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -222,6 +222,7 @@
         if map.has_key(fd):
             #self.log_info('closing channel %d:%s' % (fd, self))
             del map[fd]
+        self._fileno = None
 
     def create_socket(self, family, type):
         self.family_and_type = family, type