diff --git a/connection_instrumented.go b/connection_instrumented.go index 0118e848..435b50db 100644 --- a/connection_instrumented.go +++ b/connection_instrumented.go @@ -4,6 +4,7 @@ import ( "database/sql" "database/sql/driver" "fmt" + "sync" mysqld "github.com/go-sql-driver/mysql" "github.com/gobuffalo/pop/v6/logging" @@ -14,6 +15,8 @@ import ( const instrumentedDriverName = "instrumented-sql-driver" +var sqlDriverLock = sync.Mutex{} + func instrumentDriver(deets *ConnectionDetails, defaultDriverName string) (driverName, dialect string, err error) { driverName = defaultDriverName if deets.Driver != "" { @@ -56,6 +59,9 @@ func instrumentDriver(deets *ConnectionDetails, defaultDriverName string) (drive newDriverName = instrumentedDriverName + "-" + nameSQLite3 } + sqlDriverLock.Lock() + defer sqlDriverLock.Unlock() + var found bool for _, n := range sql.Drivers() { if n == newDriverName {