From 588cd3292ba03bb748befd607cc5c72e13204533 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 11 Feb 2017 21:47:11 +0900 Subject: [PATCH] fixes race --- sqlite3.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sqlite3.go b/sqlite3.go index efb50b9..f5699e4 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -766,14 +766,18 @@ func (s *SQLiteStmt) query(ctx context.Context, args []namedValue) (driver.Rows, done: make(chan struct{}), } - go func() { + go func(db *C.sqlite3) { select { case <-ctx.Done(): - C.sqlite3_interrupt(s.c.db) - rows.Close() + select { + case <-rows.done: + default: + C.sqlite3_interrupt(s.c.db) + rows.Close() + } case <-rows.done: } - }() + }(s.c.db) return rows, nil }