def gc(self, cdata, destructor):
        """Return a new cdata object that points to the same
        data.  Later, when this new cdata object is garbage-collected,
        'destructor(old_cdata_object)' will be called.
        """
        try:
            gcp = self._backend.gcp
        except __HOLE__:
            pass
        else:
            return gcp(cdata, destructor)
        #
        with self._lock:
            try:
                gc_weakrefs = self.gc_weakrefs
            except AttributeError:
                from .gc_weakref import GcWeakrefs
                gc_weakrefs = self.gc_weakrefs = GcWeakrefs(self)
            return gc_weakrefs.build(cdata, destructor)
dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/cffi-1.5.2/cffi/api.py/FFI.gc