def go (self, timeout=30.0, granularity=15): global socket_map last_event_check = 0 while socket_map: now = int(time.time()) if (now - last_event_check) >= granularity: last_event_check = now fired = [] # yuck. i want my lisp. i = j = 0 while i < len(self.events): when, what = self.events[i] if now >= when: fired.append (what) j = i + 1 else: break i = i + 1 if fired: self.events = self.events[j:] for what in fired: what (self, now) # sample the number of channels n = len(asyncore.socket_map) self.num_channels = n if n > self.max_channels: self.max_channels = n asyncore.poll (timeout)
sys.argv.remove ('-m') else: maps = 0 if maps: r = rbl (server) else: r = caching_resolver(server) count = len(sys.argv) - 1 def print_it (host, ttl, answer): global count print '%s: %s' % (host, answer) count = count - 1 if not count: r.close() for host in sys.argv[1:]: if reverse: r.resolve_ptr (host, print_it) elif maps: r.resolve_maps (host, print_it) else: r.resolve (host, print_it) # hooked asyncore.loop() while asyncore.socket_map: asyncore.poll (30.0) print 'requests outstanding: %d' % len(r.request_map)