Skip to content

Commit 0a9c725

Browse files
authored
Merge pull request #2002 from IntelPython/fix-smart-ptr-memory-leaks
Fix smart-pointer-managed USM leaks in synchronizing kernel calls
2 parents a34686f + 7a2f215 commit 0a9c725

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

dpctl/tensor/libtensor/source/accumulators.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ std::size_t py_mask_positions(const dpctl::tensor::usm_ndarray &mask,
210210
sycl::event::wait(host_task_events);
211211

212212
// ensure deleter of smart pointer is invoked with GIL released
213-
shape_strides_owner.release();
213+
shape_strides_owner.reset(nullptr);
214214
}
215215
throw std::runtime_error("Unexpected error");
216216
}
@@ -231,7 +231,7 @@ std::size_t py_mask_positions(const dpctl::tensor::usm_ndarray &mask,
231231

232232
sycl::event::wait(host_task_events);
233233
// ensure deleter of smart pointer is invoked with GIL released
234-
shape_strides_owner.release();
234+
shape_strides_owner.reset(nullptr);
235235
}
236236

237237
return total_set;
@@ -367,7 +367,7 @@ std::size_t py_cumsum_1d(const dpctl::tensor::usm_ndarray &src,
367367
sycl::event::wait(host_task_events);
368368

369369
// ensure USM deleter is called with GIL released
370-
shape_strides_owner.release();
370+
shape_strides_owner.reset(nullptr);
371371
}
372372
throw std::runtime_error("Unexpected error");
373373
}
@@ -387,7 +387,7 @@ std::size_t py_cumsum_1d(const dpctl::tensor::usm_ndarray &src,
387387
sycl::event::wait(host_task_events);
388388

389389
// ensure USM deleter is called with GIL released
390-
shape_strides_owner.release();
390+
shape_strides_owner.reset(nullptr);
391391
}
392392

393393
return total;

dpctl/tensor/libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ void copy_numpy_ndarray_into_usm_ndarray(
325325
dst_offset, depends, {copy_shape_ev});
326326

327327
// invoke USM deleter in smart pointer while GIL is held
328-
shape_strides_owner.release();
328+
shape_strides_owner.reset(nullptr);
329329
}
330330

331331
return;

0 commit comments

Comments
 (0)