| Server IP : 112.74.42.100 / Your IP : 216.73.216.142 Web Server : nginx/1.20.2 System : Linux iZwz96lx4pjqiy84w4hni7Z 5.10.134-17.3.al8.x86_64 #1 SMP Thu Oct 31 14:29:57 CST 2024 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,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,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/aegis/PythonLoaderTemp/third_party/kazoo/ |
Upload File : |
"""Uses the old atexit with added unregister for python 2.x
and the new atexit for python 3.x
"""
import atexit
import sys
__all__ = ["register", "unregister"]
_exithandlers = []
def _run_exitfuncs():
"""run any registered exit functions
_exithandlers is traversed in reverse order so functions are executed
last in, first out.
"""
exc_info = None
while _exithandlers:
func, targs, kargs = _exithandlers.pop()
try:
func(*targs, **kargs)
except SystemExit:
exc_info = sys.exc_info()
except:
import traceback
sys.stderr.write("Error in atexit._run_exitfuncs:\n")
traceback.print_exc()
exc_info = sys.exc_info()
if exc_info is not None:
raise exc_info[0](exc_info[1])
def register(func, *targs, **kargs):
"""register a function to be executed upon normal program termination
func - function to be called at exit
targs - optional arguments to pass to func
kargs - optional keyword arguments to pass to func
func is returned to facilitate usage as a decorator.
"""
if hasattr(atexit, "unregister"):
atexit.register(func, *targs, **kargs)
else:
_exithandlers.append((func, targs, kargs))
return func
def unregister(func):
"""remove func from the list of functions that are registered
doesn't do anything if func is not found
func = function to be unregistered
"""
if hasattr(atexit, "unregister"):
atexit.unregister(func)
else:
handler_entries = [e for e in _exithandlers if e[0] == func]
for e in handler_entries:
_exithandlers.remove(e)
if not hasattr(atexit, "unregister"):
# Only in python 2.x
atexit.register(_run_exitfuncs)