This is fixed in 2.0, you can grab the sources from git or wait until May-8 which is the release date. Running multiple threads with same transform does work as long as you inhibit the cache.
Regards Marti Quoting Esben Høgh-Rasmussen <e...@phaseone.com>: > Hi, > > I have a big interest in running cmsDoTransform() in multiple threads > using the same transform: > > From: Bob Friesenhahn [mailto:bfrie...@simple.dallas.tx.us] > Sent: 22. februar 2010 18:52 > >> Certainly there may be advantages if the transform may be shared >> between threads without locking, and there are very clear advantages >> if the transforms may be simultaneously generated by multiple threads, >> or if a transform may be cloned by a thread (into fast local >> memory) for its use. > > > Marti had the following input: > > From: marti.ma...@littlecms.com [mailto:marti.ma...@littlecms.com] > Sent: 26. februar 2010 10:49 > >> The idea on lcms-2 is a cmsDoTransform() is re-entrant and same >> transform can be shared between threads. The locking happens only >> if 1-pixel caché is being used, and in this case once per >> cmsDoTransform() call. >> >> So, you could try to inhibit caché (there is a flag to do so) or >> process large chunks of data in each cmsDoTransform(). Probably >> there is a room for improvement, but the basis are already in the code. > > > So I tried this out and disabling the pixel cache seems to work well. > > > Unfortunately it does not work for CMYK-profiles. I _think_ this is > because Eval4Inputs() does the following: > > ((cmsInterpParams*) p16) -> nInputs = 3; // I promise to restore the > value... > ... [ Some other thread get 3 ] ... > ((cmsInterpParams*) p16) -> nInputs = 4; // As promised. > > > I did not check, but I think this also implies that locking is > required for CMYK. > It feels so close :-( > > > Regards, > > > Esben Høgh-Rasmussen Myosotis > Software Engineer > > ------------------------------------------------------------------------- ----- > _______________________________________________ > Lcms-user mailing list > Lcms-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lcms-user > ------------------------------------------------------------------------------ _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user