On Jan 19, 2005, at 10:43 AM, Will Leshner wrote:
Bug #301 says that, because fcntl isn't supported for remove volumes
on OS X, SQLite can't acquire a lock, which, I think, pretty much
means you can't use SQLite databases that are on AFP or SMB volumes on
OS X. What would happen if I simply made the calls in os.c that
acquire locks NOOPs? I realize you could never expect to share a
database with such a crippled version of SQLite, but if you knew that
there was only going to be one reader/writer, would it work?

fcntl() is supported on removable volumes on Mac OS X -- it works fine for removable media.


fcntl() is not supported for AppleShare or Samba. SQLite fails gracefully in that it will report SQLITE_BUSY for any database on those volumes.

If you were to guarantee that there is only one reader and only one writer-- not just one process, but a single thread and only one sqlite3_open() against any one file-- accessing the SQLite database, then it should work fine.

Risky, certainly.

b.bum





Reply via email to