gdal-async displays in the console:
Sleeping on semaphore in garbage collector while destroying an SQL results layers, this is a known issue in gdal-async, event loop blocked for xxx µs
This is the unsolved remainder of #6
In the following situation:
gdal.Dataset that contains an SQL results layer and another layer
An asynchronous operation is running on the other layer
The SQL results layer is not referenced anymore and the GC tries to reclaim it
In this case the GC would have to block and wait for the asynchronous operation to complete which would block the event loop - as SQL results are stored in the GDALDataset structure.
There is only one solution to that issue - Datasets containing SQL layers should always be protected from the GC until their parent Datasets are reclaimed.
I prefer to get feedback from people that are actually affected before implementing such a radical and sub-optimal solution.
gdal-async displays in the console:
Sleeping on semaphore in garbage collector while destroying an SQL results layers, this is a known issue in gdal-async, event loop blocked for xxx µs
This is the unsolved remainder of #6 In the following situation:
gdal.Dataset
that contains an SQL results layer and another layerIn this case the GC would have to block and wait for the asynchronous operation to complete which would block the event loop - as SQL results are stored in the
GDALDataset
structure.There is only one solution to that issue - Datasets containing SQL layers should always be protected from the GC until their parent Datasets are reclaimed.
I prefer to get feedback from people that are actually affected before implementing such a radical and sub-optimal solution.