[Lcms-user] Are transforms thread safe?
An ICC-based CMM for color management
Brought to you by:
mm2
From: David K. <kan...@di...> - 2010-10-20 15:02:31
|
Hi! I'm trying out LCMS2 for a project. So far it's working nicely but I'd like to speed up the application of a transform. My question is this: Is it safe to create a single transform on the main thread and apply it (via DoTransform) on multiple threads running concurrently? I'm creating the transform with CreateMultiprofileTransform. If so, are there any settings I must use, such as #defines, to make the operation thread-safe? If that cannot be done, and I have to have separate transforms for each thread, what about the creation of the transforms? Can I do that concurrently on separate threads, or is CreateMultiprofileTransform also not thread-safe? If it is thread-safe, is there a performance gain from doing so, or am I better off creating them sequentially on one thread? Finally, if there is the ability to create the transforms concurrently, do they _have_ to be created on the threads that use them? And is there an advantage to setting a core affinity for each one, or does that not matter? Thanks in advance. |