def __init__(self, handle):
        # uv_handle_t
        self.uv_handle = libuv.cast_handle(handle)
        self._ffi_cb = None
        self._ffi_close_cb = None
        self._close_called = False

        # store a reference to `self` in the underlying `uv_handle_t.data`
        self_h = ffi.new_handle(self)
        self.uv_handle.data = self_h
        self.__self_h = self_h  # keep the cdata object alive as long as `self` is alive

        alive.append(self)  # store a reference to self in the global scope
:param cdata handle: specific handle type (uv_signal_t, uv_poll_t, etc.)
dataset/ETHPy150Open veegee/guv/pyuv_cffi/__init__.py/Handle.__init__