diff --git a/pyproject.toml b/pyproject.toml index 6c07833..be582da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "tangy" -version = "0.8.1" +version = "0.8.2" description = "Timetag analysing library" authors = [ {name = "Peter Thomas Barrow", email = "peter.barrow.93@gmail.com"} diff --git a/setup.py b/setup.py index 6e9a0fe..48d371b 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ print("CIBUILDWHEEL ", os.environ.get("CIBUILDWHEEL", '0')) if os.environ.get("CIBUILDWHEEL", '0') == 1: local = False -# local = False +local = False cython_dir = os.path.join("tangy_src") diff --git a/tangy_src/_tangy.py b/tangy_src/_tangy.py index 06086fb..35c3079 100644 --- a/tangy_src/_tangy.py +++ b/tangy_src/_tangy.py @@ -348,12 +348,23 @@ def __init__(self, name: str, resolution: float = 0.1, return def __del__(self): - result: _tangy.tbResult = _tangy.tangy_buffer_deinit(self._ptr_buf) + c_name: cython.p_char = self._name + flag: u8 = 0 + result: _tangy.tbResult = _tangy.shmem_exists(c_name, + cython.address(flag)) + if exists == 0: + buffer_list_update() + return + + result = _tangy.tangy_buffer_deinit(self._ptr_buf) if result.Ok is False: raise MemoryError( "Failed to free memory for buffer and/or records vector") buffer_list_update() + def close(self): + self.__del__() + def __len__(self): """ Length of buffer @@ -1752,8 +1763,13 @@ def buffer_list_delete_all(): buffer_list = buffer_list_update() for name in buffer_list.keys(): - buffer = TangyBuffer(name, 1.0) - buffer.__del__() + + format = TangyBufferType.Standard + if buffer_list[name]["format"] == "Clocked": + format = TangyBufferType.Clocked + + buffer = TangyBuffer(name, format=format) + buffer.reference_count = 0 buffer_list_update()