Thread pool bug

Larry Gritz <[email protected]> Tue, 27 Oct 2015 14:08:11 -0700
Newsgroups gmane.comp.video.openexr.devel
Message-ID <[email protected]>
https://github.com/openexr/openexr/blob/91015147e5a6a1914bcb16b12886aede9e1ed065/IlmBase/IlmThread/IlmThreadPool.cpp#L429

In the case where _data->numThreads == 0, in which the response should be to let the calling thread execute the task directly, note that it does so while still within the stop of the Lock. Therefore multiple threads each reading OpenEXR files under this condition will block against each other and refuse to read exr files concurrently.

--
Larry Gritz
[email protected]