diff --git a/writer/HDF5DataFile.cpp b/writer/HDF5DataFile.cpp index 07486f4f..3117565c 100644 --- a/writer/HDF5DataFile.cpp +++ b/writer/HDF5DataFile.cpp @@ -75,8 +75,10 @@ std::optional HDF5DataFile::Close() { data_set ->Attr("image_nr_low", (int32_t) (image_low + 1)) .Attr("image_nr_high", (int32_t) (image_low + 1 + max_image_number)); + data_set->Close(); data_set.reset(); } + data_file->Close(); data_file.reset(); if (manage_file && (!std::filesystem::exists(filename.c_str()) || overwrite)) @@ -89,13 +91,17 @@ std::optional HDF5DataFile::Close() { ret.total_images = nimages; ret.filename = filename; ret.file_number = file_number + 1; + + return ret; } HDF5DataFile::~HDF5DataFile() { if (data_file) { try { - Close(); + data_set->Close(); + data_file->Close(); + std::filesystem::remove(tmp_filename); } catch (const std::exception &e) { std::cerr << "HDF5DataFile::~HDF5DataFile: " << e.what() << std::endl; } catch (...) {