I couldn't resist and changed the PixelProcessor to use a thread pool.
Main motivation was to make progress callback work for the threaded
case. So there's now a variant of pixel_regions_process_parallel()
that takes progress function and data. This allows us to parallelize
some of the slower core functions (like for example gradient blend).
It would be interesting to know if this actually gives a noticeable
speedup on SMP systems. Would be nice if one of you could give this
some testing. Please try to do gradient blends (w/o adaptive
supersampling!) on large images. Changing the number of processors in
the preferences dialog allows you to switch between using the thread
pool and the single-threaded code.
Gimp-developer mailing list