Merge pull request #200 from DemonsLu/master

fix: 防止给v强转int时溢出,导致取余结果为负,从而获取到错误的index
pull/205/head
Tony 5 years ago committed by GitHub
commit 1bf8b97deb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      pkg/database/sql/sql.go

@ -38,7 +38,7 @@ var (
type DB struct {
write *conn
read []*conn
idx int64
idx uint64
master *DB
}
@ -217,8 +217,8 @@ func (db *DB) readIndex() int {
if len(db.read) == 0 {
return 0
}
v := atomic.AddInt64(&db.idx, 1)
return int(v) % len(db.read)
v := atomic.AddUint64(&db.idx, 1)
return int(v % uint64(len(db.read)))
}
// Close closes the write and read database, releasing any open resources.

Loading…
Cancel
Save