[gdal-dev] Multithreading with OGR

Martin Dobias wonder.sk at gmail.com
Thu Jun 24 05:02:42 EDT 2010


Hi Frank

On Wed, Jun 23, 2010 at 4:58 PM, Frank Warmerdam <warmerdam at pobox.com> wrote:
> Martin,
>
> Generally speaking it is not safe to have multiple threads making calls
> into a single OGRLayer at the same time.  At the very least you will
> encounter the "messing up" effect on GetNextFeature(), even if you
> serialize calls, and if you don't serialize the calls to the OGRLayer
> you will also face potentially severe problems and crashes.
>
> With regard to RFC 16, only a little work in the existing code with
> locks was implemented.  None of the TestCapability or GetLayerClone()
> work was done.  I still think that the approach in the RFC is reasonable
> but I don't currently have funding to pursue the matter.  There was
> also some pushback at the time though I don't recall all the details.

My intent is to use two OGRLayer instances of the same layer: one
instance for handling various stuff in main thread, the other one in
worker thread for rendering. Can I expect the GetNextFeature calls to
be reentrant, i.e. can they be called from both threads simultaneously
using different instances of layers?

Regards
Martin


More information about the gdal-dev mailing list