Re: can't delete from a dictionary in a loop



Dan Upton wrote:

for pid in procs_dict:
if procs_dict[pid].poll() != None
# do the counter updates
del procs_dict[pid]

The problem:

RuntimeError: dictionary changed size during iteration

I don't know if the setup with the pids in a dictionary is the best way to manage a pool of processes... I'll leave it others, presumably more knowledgable, to comment on that. :-) But I can tell you how to solve the immediate problem:

for pid in procs_dict.keys():
...

Hope this helps!

--Hans
.



Relevant Pages