New submission from Charles-François Natali: This adds a keys() method to selectors, to return all the registered keys. It's useful, because one often needs to loop until all registered file objects have been unregistered e.g. (inspired from subprocess, see #18923):
while selector.keys(): for key, events in selector.select(): # process events also, it can be useful if you want e.g. the list of all currently logged users, etc. It avoids having to maintain a separate data-structure tracking registered file objects. The patch attached returns a new set upon each call: another way to handle this would be to just return the dictionary's .values() view: it would be faster and use less memory, but it's immutable and also this would prevent the user from doing: for key in selectior.keys(): if somecondition: selector.unregister(key.fileobj) (since you'll get "dictonary changed size during iteration"). ---------- components: Library (Lib) files: selectors_keys.diff keywords: needs review, patch messages: 198988 nosy: haypo, neologix, pitrou priority: normal severity: normal stage: patch review status: open title: selectors: add keys() method type: enhancement versions: Python 3.4 Added file: http://bugs.python.org/file31965/selectors_keys.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19172> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com