acquireAll method

Future<List<LockGrant>> acquireAll(
  1. List<String> tables,
  2. LockMode mode
)

Acquire locks on multiple tables in canonical (sorted) order to prevent deadlock via circular-wait prevention.

Implementation

Future<List<LockGrant>> acquireAll(
    List<String> tables, LockMode mode) async {
  final sorted = List<String>.from(tables)..sort();
  final grants = <LockGrant>[];
  for (final t in sorted) {
    grants.add(mode == LockMode.write
        ? await acquireWrite(t)
        : await acquireRead(t));
  }
  return grants;
}