diff --git a/pykokkos/__init__.py b/pykokkos/__init__.py index 9340945f..83bd87fb 100644 --- a/pykokkos/__init__.py +++ b/pykokkos/__init__.py @@ -113,6 +113,8 @@ def cleanup(): view.array = None if hasattr(view, "data"): view.data = None + if hasattr(view, "xp_array"): + view.xp_array = None except (ReferenceError, AttributeError): pass diff --git a/pykokkos/interface/views.py b/pykokkos/interface/views.py index 62ed04b4..74274652 100644 --- a/pykokkos/interface/views.py +++ b/pykokkos/interface/views.py @@ -628,6 +628,13 @@ def __init__( self.ndim = self.data.ndim self.size = self.data.size + try: + from pykokkos import _view_registry + + _view_registry.add(self) + except (ImportError, AttributeError): + pass + def _create_slice(self, data_slice: Union[slice, Tuple]) -> List[Union[int, slice]]: """ Transforms the slice into a list, removing all None values for start and stop