@@ -238,7 +238,7 @@ class HostKernel : public HostKernelBase {
238238// the class keeps reference to a lambda allocated externally on stack
239239class HostKernelRefBase : public HostKernelBase {
240240public:
241- virtual std::shared_ptr <HostKernelBase> takeOrCopyOwnership () const = 0;
241+ virtual std::unique_ptr <HostKernelBase> takeOrCopyOwnership () const = 0;
242242#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
243243 // This function can't be called from old user code, because there is no
244244 // HostKernelRef in old user code. So, make it empty.
@@ -258,8 +258,8 @@ class HostKernelRef : public HostKernelRefBase {
258258 virtual char *getPtr () override {
259259 return const_cast <char *>(reinterpret_cast <const char *>(&MKernel));
260260 }
261- virtual std::shared_ptr <HostKernelBase> takeOrCopyOwnership () const override {
262- std::shared_ptr <HostKernelBase> Kernel;
261+ virtual std::unique_ptr <HostKernelBase> takeOrCopyOwnership () const override {
262+ std::unique_ptr <HostKernelBase> Kernel;
263263 Kernel.reset (
264264 new HostKernel<KernelType, KernelArgType, Dims>(std::move (MKernel)));
265265 return Kernel;
@@ -281,8 +281,8 @@ class HostKernelRef<KernelType, KernelTypeUniversalRef&, KernelArgType, Dims>
281281 virtual char *getPtr () override {
282282 return const_cast <char *>(reinterpret_cast <const char *>(&MKernel));
283283 }
284- virtual std::shared_ptr <HostKernelBase> takeOrCopyOwnership () const override {
285- std::shared_ptr <HostKernelBase> Kernel;
284+ virtual std::unique_ptr <HostKernelBase> takeOrCopyOwnership () const override {
285+ std::unique_ptr <HostKernelBase> Kernel;
286286 Kernel.reset (new HostKernel<KernelType, KernelArgType, Dims>(MKernel));
287287 return Kernel;
288288 }
0 commit comments