summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ungurianu <alex.ungurianu@protonmail.com>2022-10-28 22:23:03 +0100
committerAlex Ungurianu <alex.ungurianu@protonmail.com>2022-11-16 22:44:02 +0000
commit7ade392d22cd37195f52da469ee233d339b20a01 (patch)
tree3a824a5dd0c9f1a2a57f55f272d745d13089673c
parente05b50a1d6c04f7e6cf0c82c43e79cfd8520ee2a (diff)
downloadkazoo-7ade392d22cd37195f52da469ee233d339b20a01.tar.gz
refactor: remove backport of 'atexit.unregister'
-rw-r--r--kazoo/handlers/eventlet.py6
-rw-r--r--kazoo/handlers/gevent.py6
-rw-r--r--kazoo/handlers/threading.py6
-rw-r--r--kazoo/python2atexit.py71
-rw-r--r--kazoo/testing/harness.py2
5 files changed, 10 insertions, 81 deletions
diff --git a/kazoo/handlers/eventlet.py b/kazoo/handlers/eventlet.py
index ebf9898..8869cc5 100644
--- a/kazoo/handlers/eventlet.py
+++ b/kazoo/handlers/eventlet.py
@@ -1,6 +1,7 @@
"""A eventlet based handler."""
from __future__ import absolute_import
+import atexit
import contextlib
import logging
@@ -12,7 +13,6 @@ from eventlet.green import selectors as green_selectors
from eventlet import queue as green_queue
from kazoo.handlers import utils
-import kazoo.python2atexit as python2atexit
from kazoo.handlers.utils import selector_select
LOG = logging.getLogger(__name__)
@@ -140,7 +140,7 @@ class SequentialEventletHandler(object):
w = eventlet.spawn(self._process_callback_queue)
self._workers.append((w, self.callback_queue))
self._started = True
- python2atexit.register(self.stop)
+ atexit.register(self.stop)
def stop(self):
while self._workers:
@@ -148,7 +148,7 @@ class SequentialEventletHandler(object):
q.put(_STOP)
w.wait()
self._started = False
- python2atexit.unregister(self.stop)
+ atexit.unregister(self.stop)
def socket(self, *args, **kwargs):
return utils.create_tcp_socket(green_socket)
diff --git a/kazoo/handlers/gevent.py b/kazoo/handlers/gevent.py
index 1c141bc..64d7e83 100644
--- a/kazoo/handlers/gevent.py
+++ b/kazoo/handlers/gevent.py
@@ -1,6 +1,7 @@
"""A gevent based handler."""
from __future__ import absolute_import
+import atexit
import logging
import gevent
@@ -19,7 +20,6 @@ except ImportError:
from gevent.coros import Semaphore, RLock
from kazoo.handlers import utils
-from kazoo import python2atexit
_using_libevent = gevent.__version__.startswith("0.")
@@ -104,7 +104,7 @@ class SequentialGeventHandler(object):
for queue in (self.callback_queue,):
w = self._create_greenlet_worker(queue)
self._workers.append(w)
- python2atexit.register(self.stop)
+ atexit.register(self.stop)
def stop(self):
"""Stop the greenlet workers and empty all queues."""
@@ -124,7 +124,7 @@ class SequentialGeventHandler(object):
# Clear the queues
self.callback_queue = self.queue_impl() # pragma: nocover
- python2atexit.unregister(self.stop)
+ atexit.unregister(self.stop)
def select(self, *args, **kwargs):
return selector_select(
diff --git a/kazoo/handlers/threading.py b/kazoo/handlers/threading.py
index b28bae8..b9acd87 100644
--- a/kazoo/handlers/threading.py
+++ b/kazoo/handlers/threading.py
@@ -12,13 +12,13 @@ environments that use threads.
"""
from __future__ import absolute_import
+import atexit
import logging
import queue
import socket
import threading
import time
-import kazoo.python2atexit as python2atexit
from kazoo.handlers import utils
from kazoo.handlers.utils import selector_select
@@ -141,7 +141,7 @@ class SequentialThreadingHandler(object):
w = self._create_thread_worker(work_queue)
self._workers.append(w)
self._running = True
- python2atexit.register(self.stop)
+ atexit.register(self.stop)
def stop(self):
"""Stop the worker threads and empty all queues."""
@@ -162,7 +162,7 @@ class SequentialThreadingHandler(object):
# Clear the queues
self.callback_queue = self.queue_impl()
self.completion_queue = self.queue_impl()
- python2atexit.unregister(self.stop)
+ atexit.unregister(self.stop)
def select(self, *args, **kwargs):
return selector_select(*args, **kwargs)
diff --git a/kazoo/python2atexit.py b/kazoo/python2atexit.py
deleted file mode 100644
index fdf78d2..0000000
--- a/kazoo/python2atexit.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""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: # noqa
- 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)
diff --git a/kazoo/testing/harness.py b/kazoo/testing/harness.py
index fa4427f..2d28a5b 100644
--- a/kazoo/testing/harness.py
+++ b/kazoo/testing/harness.py
@@ -1,10 +1,10 @@
"""Kazoo testing harnesses"""
+import atexit
import logging
import os
import uuid
import unittest
-from kazoo import python2atexit as atexit
from kazoo.client import KazooClient
from kazoo.exceptions import KazooException
from kazoo.protocol.connection import _CONNECTION_DROP, _SESSION_EXPIRED