<div dir="ltr">Thanks! <br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 6, 2018 at 2:25 PM Even Rouault <<a href="mailto:even.rouault@spatialys.com">even.rouault@spatialys.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On jeudi 6 décembre 2018 13:59:07 CET Pablo Sanfilippo wrote:<br>
> Hello!<br>
> <br>
> I'm building an application in which I will have multiple concurrent<br>
> process reading and writing to a VRT file. The writers are just multiple<br>
> instances of the same process that create a .vrt off a list of tiffs in a<br>
> folder. The writer process implement file locking, so I'm sure no two<br>
> processes will try to write the .vrt at the same time. But the readers<br>
> (which are gdal_translate calls that use the .vrt as input) don't lock the<br>
> .vrt so they can be ran at the same time. I can see a race condition<br>
> happening if gdalbuildvrt overwrites the file when some gdal_translate is<br>
> opening it. So, if I'm understanding this correctly, the question boils<br>
> down to: Is the read call that gdal_translate makes when reading a vrt file<br>
> atomic? And is the write call that gdalbuildvrt makes when writing the file<br>
> atomic?<br>
<br>
Much likely not. At least there's no effort in the code to make read/write <br>
atomic.<br>
<br>
Even<br>
<br>
-- <br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com" rel="noreferrer" target="_blank">http://www.spatialys.com</a><br>
</blockquote></div>