fixes race

This commit is contained in:
Yasuhiro Matsumoto 2017-02-11 21:47:11 +09:00
parent 6f8cd03789
commit 588cd3292b
1 changed files with 8 additions and 4 deletions

View File

@ -766,14 +766,18 @@ func (s *SQLiteStmt) query(ctx context.Context, args []namedValue) (driver.Rows,
done: make(chan struct{}), done: make(chan struct{}),
} }
go func() { go func(db *C.sqlite3) {
select { select {
case <-ctx.Done(): case <-ctx.Done():
select {
case <-rows.done:
default:
C.sqlite3_interrupt(s.c.db) C.sqlite3_interrupt(s.c.db)
rows.Close() rows.Close()
}
case <-rows.done: case <-rows.done:
} }
}() }(s.c.db)
return rows, nil return rows, nil
} }