Skip to content

Commit

Permalink
fix(runtime): Fix repeat attach engine in finalizer
Browse files Browse the repository at this point in the history
  • Loading branch information
medz committed Apr 5, 2023
1 parent 2606456 commit a5890b7
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions lib/src/client/prisma_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ abstract class BasePrismaClient<Client extends BasePrismaClient<Client>> {
static final Finalizer<Engine> finalizer =
Finalizer<Engine>((engine) => engine.stop());

/// Finalizer is registered.
static bool _finalizerRegistered = false;

/// Create a new instance of [BasePrismaClient].
BasePrismaClient(
Engine engine, {
Expand All @@ -26,7 +29,10 @@ abstract class BasePrismaClient<Client extends BasePrismaClient<Client>> {
}) : _transaction = transaction,
_headers = headers,
_engine = engine {
// finalizer.attach(this, engine, detach: this);
if (_finalizerRegistered != true) {
_finalizerRegistered = true;
finalizer.attach(this, engine, detach: this);
}
}

/// The prisma engine.
Expand All @@ -46,8 +52,6 @@ abstract class BasePrismaClient<Client extends BasePrismaClient<Client>> {

/// Connect to the prisma engine.
Future<void> $connect() {
finalizer.attach(this, _engine, detach: this);

return _engine.start();
}

Expand Down

0 comments on commit a5890b7

Please sign in to comment.