diff options
| author | Nathan VanBenschoten <nvanbenschoten@gmail.com> | 2015-10-22 21:50:06 -0400 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2015-10-23 04:33:50 +0000 |
| commit | 7f34a2dac888785c4f16e00059023a2b7702d43c (patch) | |
| tree | 2d7ce2cdae3d3ac1a6b281eef592e62ae2204fc5 /src/database/sql/sql.go | |
| parent | f75f2f3fcc0bf4becde65dc23297e081a8d35d1f (diff) | |
| download | go-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.go | 10 |
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) } |
