@@ -16,19 +16,19 @@ namespace sycl {
16
16
inline namespace _V1 {
17
17
namespace detail {
18
18
19
- kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, ContextImplPtr Context,
19
+ kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, context_impl & Context,
20
20
KernelBundleImplPtr KernelBundleImpl,
21
21
const KernelArgMask *ArgMask)
22
- : MKernel(Kernel), MContext(Context),
23
- MProgram (ProgramManager::getInstance().getUrProgramFromUrKernel(
24
- Kernel, * Context)),
22
+ : MKernel(Kernel), MContext(Context.shared_from_this() ),
23
+ MProgram (ProgramManager::getInstance().getUrProgramFromUrKernel(Kernel,
24
+ Context)),
25
25
MCreatedFromSource(true ), MKernelBundleImpl(std::move(KernelBundleImpl)),
26
26
MIsInterop(true ), MKernelArgMaskPtr{ArgMask} {
27
27
ur_context_handle_t UrContext = nullptr ;
28
28
// Using the adapter from the passed ContextImpl
29
29
getAdapter ()->call <UrApiKind::urKernelGetInfo>(
30
30
MKernel, UR_KERNEL_INFO_CONTEXT, sizeof (UrContext), &UrContext, nullptr );
31
- if (Context-> getHandleRef () != UrContext)
31
+ if (Context. getHandleRef () != UrContext)
32
32
throw sycl::exception (
33
33
make_error_code (errc::invalid),
34
34
" Input context must be the same as the context of cl_kernel" );
@@ -37,12 +37,13 @@ kernel_impl::kernel_impl(ur_kernel_handle_t Kernel, ContextImplPtr Context,
37
37
enableUSMIndirectAccess ();
38
38
}
39
39
40
- kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, ContextImplPtr ContextImpl,
40
+ kernel_impl::kernel_impl (ur_kernel_handle_t Kernel, context_impl & ContextImpl,
41
41
DeviceImageImplPtr DeviceImageImpl,
42
42
KernelBundleImplPtr KernelBundleImpl,
43
43
const KernelArgMask *ArgMask,
44
44
ur_program_handle_t Program, std::mutex *CacheMutex)
45
- : MKernel(Kernel), MContext(std::move(ContextImpl)), MProgram(Program),
45
+ : MKernel(Kernel), MContext(ContextImpl.shared_from_this()),
46
+ MProgram (Program),
46
47
MCreatedFromSource(DeviceImageImpl->isNonSYCLSourceBased ()),
47
48
MDeviceImageImpl(std::move(DeviceImageImpl)),
48
49
MKernelBundleImpl(std::move(KernelBundleImpl)),
0 commit comments