assert(device != (MagickCLDevice) NULL);
LockSemaphoreInfo(device->lock);
device->created_queues++;
- if (device->command_queues_index >= 0)
+ if ((device->profile_kernels == MagickFalse) &&
+ (device->command_queues_index >= 0))
{
queue=device->command_queues[device->command_queues_index--];
UnlockSemaphoreInfo(device->lock);
if (length != (size_t *) NULL)
{
*length=0;
+ LockSemaphoreInfo(device->lock);
while (device->profile_records[*length] != (KernelProfileRecord) NULL)
*length=*length+1;
+ UnlockSemaphoreInfo(device->lock);
}
return(device->profile_records);
}
assert(device != (MagickCLDevice) NULL);
LockSemaphoreInfo(device->lock);
device->created_queues--;
- if (device->command_queues_index >= MAGICKCORE_OPENCL_COMMAND_QUEUES-1)
+ if ((device->profile_kernels == MagickFalse) ||
+ (device->command_queues_index >= MAGICKCORE_OPENCL_COMMAND_QUEUES-1))
(void) openCL_library->clReleaseCommandQueue(queue);
else
device->command_queues[++device->command_queues_index]=queue;