| Server IP : 61.19.30.66 / Your IP : 216.73.216.15 Web Server : Apache/2.2.22 (Ubuntu) System : Linux klw 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 User : www-data ( 33) PHP Version : 5.3.10-1ubuntu3.48 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/pyshared/twisted/python/ |
Upload File : |
"""
A module for externalized finalizers.
"""
import weakref
garbageKey = 0
def callbackFactory(num, fins):
def _cb(w):
del refs[num]
for fx in fins:
fx()
return _cb
refs = {}
def register(inst):
global garbageKey
garbageKey += 1
r = weakref.ref(inst, callbackFactory(garbageKey, inst.__finalizers__()))
refs[garbageKey] = r
if __name__ == '__main__':
def fin():
print 'I am _so_ dead.'
class Finalizeable:
"""
An un-sucky __del__
"""
def __finalizers__(self):
"""
I'm going away.
"""
return [fin]
f = Finalizeable()
f.f2 = f
register(f)
del f
import gc
gc.collect()
print 'deled'