Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problem
After an mbtiles file was opened, the file was locked and could not be be opened by another application.
The solution
This problem could be solved by replacing the
SQLiteConnectionWithLock
withSQLiteConnection
. The 'Lock' inSQLiteConnectionWithLock
does not seem to relate to a file lock by to a connection access lock. Also, that Lock is in a using and should thus be unlocked (and looking at the sql-lite-net source it is unlocked) Nevertheless, replacing it solved the problem. Perhaps there is a bug in the way SQLiteConnectionWithLock is Dispose. Note, SQLiteConnectionWithLock was only used while reading the metadata (which is only once when opening the file) and not while fetching tiles. I don't really see why the lock was needed since everything in the file provider is read only.