writeLock<T> method
Future<T>
writeLock<T>(})
override
Takes a global lock, without starting a transaction.
In most cases, writeTransaction should be used instead.
The lock applies to all SqliteConnection instances for a SqliteDatabase. Locks for separate SqliteDatabase instances on the same database file may be held concurrently.
Implementation
@override
Future<T> writeLock<T>(Future<T> Function(SqliteWriteContext tx) callback,
{Duration? lockTimeout, String? debugContext}) {
final task = profileQueries ? TimelineTask() : null;
task?.start('${profilerPrefix}mutex_lock');
return mutex.lock(
() {
task?.finish();
return callback(SyncWriteContext(db, parent: task));
},
timeout: lockTimeout,
);
}