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