[gdal-dev] Re: GDAL/OGR Python bindings and threads

Howard Butler hobu.inc at gmail.com
Mon Apr 7 10:08:54 EDT 2008


On Apr 6, 2008, at 8:12 PM, Allen Bierbaum wrote:
> First, is this a reasonable place to post questions about the python
> bindings for GDAL/OGR or is there another list that is more
> appropriate?
>

gdal-dev would be more appropriate, but I would be the one who would  
take the first crack at answering the question there as well :)  http://lists.osgeo.org/mailman/listinfo/gdal-dev/ 
   Frank would then chime in with corrections to all of the  
information I got wrong ;)

> Second, assuming that this list works, does anyone have any experience
> trying to extend the OGR bindings to release the GIL during queries.
> I see that this is not enabled, but was there a specific reason for
> this? (ex: does OGR crash horribly when it is tried)

OGR is generally not thread safe (GDAL has more thread safety, but  
there are areas of the code that have not be vetted there as well),  
and I would expect that releasing the GIL inside of the bindings would  
produce awful, painful results in most cases.  Thread safety in GDAL/ 
OGR is now mostly a function of which driver you are using and whether  
or not it has been vetted to be thread safe.  The FAQ entry about  
GDAL's thread safety should apply to OGR with respect to the "core"  
stuff it talks about <http://www.gdal.org/faq.html>, but as a rule,  
OGR is less thread safe than GDAL, and for the most part, not thread  
safe at all.  Not the answer you're probably looking for, I know.

Which driver are you using that you want to do multithreaded access  
with?  If it were just PostGIS from Python, maybe psycopg2 is thread  
safe and you could query the wkb/wkt out with that and generate your  
geometries with Shapely?  That's mostly what OGR is doing in the  
background in PG's case anyway.

Howard





More information about the gdal-dev mailing list