I have test app with two threads. Each thread looks like:
Code: Select all
//reading image from file to buffer
while(true)
{
Blob blob( imageData, size );
image.ping( blob );
}
But it doesn't happen. Each of two cores works at 80-90%.
I explored source code and found this call sequence: Image::ping->PingBlob->CloneImageInfo->AcquireImageInfo->AcquireMagickMemory
There is a special memory manager with blocking (memory_semaphore), so I can't use full power of cores.
Am I right?
Is there any way to have memory manager for each thread?
Or may be other solution?
IM 6.7.6.9
CentOs 6.3