def run(self):
    """Runs as long as either an event is scheduled or there are
        sockets in the map."""
Python's asyncore to periodically send data using a variable timeout. Is there a better way?