aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
authorNathan VanBenschoten <nvanbenschoten@gmail.com>2015-10-22 21:50:06 -0400
committerBrad Fitzpatrick <bradfitz@golang.org>2015-10-23 04:33:50 +0000
commit7f34a2dac888785c4f16e00059023a2b7702d43c (patch)
tree2d7ce2cdae3d3ac1a6b281eef592e62ae2204fc5 /src/database/sql/sql.go
parentf75f2f3fcc0bf4becde65dc23297e081a8d35d1f (diff)
downloadgo-7f34a2dac888785c4f16e00059023a2b7702d43c.tar.xz
database/sql: use RWMutex for driver registration
Change-Id: I0f494c9f17cb6bb0cf5e7214cf033fdbd48f27f7 Reviewed-on: https://go-review.googlesource.com/16240 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index f3fed953ad..31e9605309 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -24,7 +24,7 @@ import (
)
var (
- driversMu sync.Mutex
+ driversMu sync.RWMutex
drivers = make(map[string]driver.Driver)
)
@@ -52,8 +52,8 @@ func unregisterAllDrivers() {
// Drivers returns a sorted list of the names of the registered drivers.
func Drivers() []string {
- driversMu.Lock()
- defer driversMu.Unlock()
+ driversMu.RLock()
+ defer driversMu.RUnlock()
var list []string
for name := range drivers {
list = append(list, name)
@@ -465,9 +465,9 @@ var connectionRequestQueueSize = 1000000
// function should be called just once. It is rarely necessary to
// close a DB.
func Open(driverName, dataSourceName string) (*DB, error) {
- driversMu.Lock()
+ driversMu.RLock()
driveri, ok := drivers[driverName]
- driversMu.Unlock()
+ driversMu.RUnlock()
if !ok {
return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)
}