+++ /dev/null
-"""
-In order to detect a filehandle that's been closed, our only clue may be
-the operating system returning the same filehandle in response to some
-other operation.
-
-The builtins 'file' and 'open' are patched to collaborate with the
-notify_opened protocol.
-"""
-
-builtins_orig = __builtins__
-
-from eventlet import hubs
-from eventlet.hubs import hub
-from eventlet.patcher import slurp_properties
-import sys
-
-__all__ = dir(builtins_orig)
-__patched__ = ['file', 'open']
-
-slurp_properties(builtins_orig, globals(),
- ignore=__patched__, srckeys=dir(builtins_orig))
-
-hubs.get_hub()
-
-__original_file = file
-
-
-class file(__original_file):
- def __init__(self, *args, **kwargs):
- super(file, self).__init__(*args, **kwargs)
- hubs.notify_opened(self.fileno())
-
-__original_open = open
-__opening = False
-
-
-def open(*args):
- global __opening
- result = __original_open(*args)
- if not __opening:
- # This is incredibly ugly. 'open' is used under the hood by
- # the import process. So, ensure we don't wind up in an
- # infinite loop.
- __opening = True
- hubs.notify_opened(result.fileno())
- __opening = False
- return result