tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

prop_dictionary_iterator



In sys/dev/sysmon/sysmon_power.c we have

        ...
        while ((obj = prop_object_iterator_next(iter)) != NULL) {
                prop_dictionary_remove(ped->dict,
                    prop_dictionary_keysym_cstring_nocopy(obj));
                prop_object_iterator_reset(iter);
        }
        ...

The man-page for prop_dictionary_iterator says in part

        ... Storing to or removing from the dictionary invalidates
        any active iterators for the dictionary.


Doesn't the code-snippet above do exactly what the man-page says should not be done?


I've got a machine that lately has decided to panic in the middle of the night. I finally got a traceback which casts great suspicion on the above code. (Unfortunately I managed to reset the machine before I was able to copy the whole traceback; I have now attached a PS2 keyboard, anticipating the next occurrence.)



-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------


Home | Main Index | Thread Index | Old Index