getDatabaseOpenHelper method

Future<DatabaseOpenHelper> getDatabaseOpenHelper(
  1. String path,
  2. DatabaseOpenOptions options
)
inherited

Get or create the open helper for a given path.

Implementation

Future<DatabaseOpenHelper> getDatabaseOpenHelper(
  String path,
  DatabaseOpenOptions options,
) async {
  DatabaseOpenHelper newHelper() {
    var helper = DatabaseOpenHelper(this, path, options);
    setDatabaseOpenHelper(path, helper);
    return helper;
  }

  var helper = getExistingDatabaseOpenHelper(path);

  /// Wait if closing and create a new one, unless another open
  /// waiting for the same close already created it.
  while (helper != null && helper.closing) {
    await helper.closeCompleted;
    var registered = getExistingDatabaseOpenHelper(path);
    helper = identical(registered, helper) ? null : registered;
  }
  return helper ?? newHelper();
}