close method

  1. @override
Future<void> close()
override

Implementation

@override
Future<void> close() {
  final result = _pending.then((_) async {
    if (_closed) return;
    _closed = true;
    try {
      final walLock = _walLock;
      if (walLock != null) {
        await _shm!.unlock(walLock, walLock + 1);
      }
      await _shm?.close();
      await _file.unlock(SqliteLock.sharedFirst, SqliteLock.sharedFirst + 1);
    } finally {
      await _file.close();
    }
  });
  _pending = result.then<void>((_) {}, onError: (Object _, StackTrace __) {});
  return result;
}