infidel wrote: > How about something like this? > > while serverlist: > server = serverlist.pop(0) > pinger = ping[server] > if pinger.returncode==None: > pinger.poll() > serverlist.append(server) > else: > pingresult[server] = pinger.stdout.read() > pingreturncode[server] = pinger.returncode > > Basic idea: as long as there are servers in the list, pop the first > one out of the list, see if it's done, and if it isn't, put it back on > the end of the list.
here's a simple variation of that, which is a bit more efficient, and perhaps also a bit easier to use in the general case: while serverlist: still_active = [] for server in serverlist: pinger = ping[server] if pinger.returncode is None: pinger.poll() still_active.append(server) else: pingresult[server] = pinger.stdout.read() pingreturncode[server] = pinger.returncode serverlist = still_active </F> -- http://mail.python.org/mailman/listinfo/python-list