The sqlite3_mutex structure
provides an abstract mutual exclusion lock. An application can
create its own locks using the sqlite3_mutex_alloc() call, but it is much more
common to reference the lock used by the database connection.
This lock can be retrieved with the sqlite3_db_mutex() call. Mutex locks are
locked and unlocked using the sqlite3_mutex_enter() and sqlite3_mutex_leave()
calls.
The sqlite3_mutex structure
is opaque, and an application should never access any of the
data fields directly.