From 85ed8edfcb1295a746f4f1fb6f42e17e563b0b51 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Wed, 14 Dec 2022 13:58:10 -0700 Subject: [PATCH] Prevent double free of CPU memory --- src/KOKKOS/atom_vec_kokkos.cpp | 9 +++++++++ src/KOKKOS/atom_vec_kokkos.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/KOKKOS/atom_vec_kokkos.cpp b/src/KOKKOS/atom_vec_kokkos.cpp index 6286dae0f9..cc02f1e617 100644 --- a/src/KOKKOS/atom_vec_kokkos.cpp +++ b/src/KOKKOS/atom_vec_kokkos.cpp @@ -40,6 +40,15 @@ AtomVecKokkos::AtomVecKokkos(LAMMPS *lmp) : AtomVec(lmp) /* ---------------------------------------------------------------------- */ +AtomVecKokkos::~AtomVecKokkos() +{ + // Kokkos already deallocated host memory + + ngrow = 0; +} + +/* ---------------------------------------------------------------------- */ + template struct AtomVecKokkos_PackComm { typedef DeviceType device_type; diff --git a/src/KOKKOS/atom_vec_kokkos.h b/src/KOKKOS/atom_vec_kokkos.h index a332024a7d..3d6f667bfb 100644 --- a/src/KOKKOS/atom_vec_kokkos.h +++ b/src/KOKKOS/atom_vec_kokkos.h @@ -36,6 +36,7 @@ union d_ubuf { class AtomVecKokkos : virtual public AtomVec { public: AtomVecKokkos(class LAMMPS *); + ~AtomVecKokkos(); virtual void sync(ExecutionSpace space, unsigned int mask) = 0; virtual void modified(ExecutionSpace space, unsigned int mask) = 0;