diff --git a/c/driver/postgresql/database.cc b/c/driver/postgresql/database.cc index a164473550..b416ee7c94 100644 --- a/c/driver/postgresql/database.cc +++ b/c/driver/postgresql/database.cc @@ -120,9 +120,10 @@ AdbcStatusCode PostgresDatabase::Init(struct AdbcError* error) { } AdbcStatusCode PostgresDatabase::Release(struct AdbcError* error) { - if (open_connections_ != 0) { + const int32_t open_connections = open_connections_; + if (open_connections != 0) { InternalAdbcSetError(error, "%s%" PRId32 "%s", "[libpq] Database released with ", - open_connections_, " open connections"); + open_connections, " open connections"); return ADBC_STATUS_INVALID_STATE; } return ADBC_STATUS_OK; diff --git a/c/driver/postgresql/database.h b/c/driver/postgresql/database.h index a608ef2d3d..5842a08f9c 100644 --- a/c/driver/postgresql/database.h +++ b/c/driver/postgresql/database.h @@ -18,6 +18,7 @@ #pragma once #include +#include #include #include #include @@ -69,7 +70,7 @@ class PostgresDatabase { bool use_copy() const { return use_copy_; } private: - int32_t open_connections_; + std::atomic open_connections_; std::string uri_; std::shared_ptr type_resolver_; std::array postgres_server_version_{};