Skip to content

Commit c8d9a4a

Browse files
committed
Fix race error
#598
1 parent 09cb77e commit c8d9a4a

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

driver/driver.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import "C"
3333
import (
3434
"database/sql"
3535
"database/sql/driver"
36+
"sync"
3637
)
3738

3839
var (
@@ -45,13 +46,17 @@ func init() {
4546

4647
// SQLiteDriver implement sql.Driver.
4748
type SQLiteDriver struct {
49+
mu sync.Mutex
4850
Config *Config
4951
Extensions []string
5052
ConnectHook func(*SQLiteConn) error
5153
}
5254

5355
// Open database and return a new connection.
5456
func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
57+
d.mu.Lock()
58+
defer d.mu.Unlock()
59+
5560
cfg, err := ParseDSN(dsn)
5661
if err != nil {
5762
return nil, err

driver/driver_go110.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ var (
2222
// The two-step sequence allows drivers to parse the name just once and also provides
2323
// access to per-Conn contexts.
2424
func (d *SQLiteDriver) OpenConnector(dsn string) (driver.Connector, error) {
25+
d.mu.Lock()
26+
defer d.mu.Unlock()
27+
2528
cfg, err := ParseDSN(dsn)
2629
if err != nil {
2730
return nil, err

0 commit comments

Comments
 (0)