MCPcopy Create free account
hub / github.com/clMathLibraries/clFFT / setclKernel

Method setclKernel

src/library/repo.cpp:247–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

245}
246
247clfftStatus FFTRepo::setclKernel( cl_program prog, clfftDirection dir, const cl_kernel& kernel )
248{
249 scopedLock sLock( lockRepo, _T( "setclKernel" ) );
250
251 fftKernels & Kernels = mapKernels[ prog ];
252
253 cl_kernel * pk;
254 lockRAII ** kernelLock;
255
256 switch (dir) {
257 case CLFFT_FORWARD:
258 pk = & Kernels.kernel_fwd;
259 kernelLock = & Kernels.kernel_fwd_lock;
260 break;
261 case CLFFT_BACKWARD:
262 pk = & Kernels.kernel_back;
263 kernelLock = & Kernels.kernel_back_lock;
264 break;
265 default:
266 assert (false);
267 return CLFFT_INVALID_ARG_VALUE;
268 }
269
270 assert (NULL == *pk);
271 if (NULL != *pk)
272 clReleaseKernel( *pk );
273
274 *pk = kernel;
275
276 if (NULL != *kernelLock)
277 delete kernelLock;
278
279 *kernelLock = new lockRAII;
280
281 return CLFFT_SUCCESS;
282}
283
284clfftStatus FFTRepo::getclKernel( cl_program prog, clfftDirection dir, cl_kernel& kernel, lockRAII*& kernelLock)
285{

Callers 1

compileKernelsMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected