Skip to content

Commit 87daa48

Browse files
committed
fix: adapt go1.18
1 parent 47e9c66 commit 87daa48

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

protocol/cio/conn.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (l *LimitedConn) Read(p []byte) (n int, err error) {
145145
if !GlobalLimiter.IsReadEnabled() {
146146
n, err = l.Conn.Read(p)
147147
if n > 0 {
148-
GlobalLimiter.readCount.Add(int64(n))
148+
GlobalLimiter.readCount += int64(n)
149149
atomic.AddInt64(&l.ReadCount, int64(n))
150150
}
151151
return
@@ -156,7 +156,7 @@ func (l *LimitedConn) Read(p []byte) (n int, err error) {
156156
if err := GlobalLimiter.readLimiter.WaitN(context.Background(), n); err != nil {
157157
return n, err
158158
}
159-
GlobalLimiter.readCount.Add(int64(n))
159+
GlobalLimiter.readCount += int64(n)
160160
atomic.AddInt64(&l.ReadCount, int64(n))
161161
}
162162
return
@@ -166,7 +166,7 @@ func (l *LimitedConn) Write(p []byte) (n int, err error) {
166166
if !GlobalLimiter.IsWriteEnabled() {
167167
n, err = l.Conn.Write(p)
168168
if n > 0 {
169-
GlobalLimiter.writeCount.Add(int64(n))
169+
GlobalLimiter.writeCount += int64(n)
170170
atomic.AddInt64(&l.WriteCount, int64(n))
171171
}
172172
return
@@ -177,7 +177,7 @@ func (l *LimitedConn) Write(p []byte) (n int, err error) {
177177
if err := GlobalLimiter.writeLimiter.WaitN(context.Background(), n); err != nil {
178178
return n, err
179179
}
180-
GlobalLimiter.writeCount.Add(int64(n))
180+
GlobalLimiter.writeCount += int64(n)
181181
atomic.AddInt64(&l.WriteCount, int64(n))
182182
}
183183
return

protocol/cio/limiter.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,25 @@ func init() {
1616
type Limiter struct {
1717
readLimiter *rate.Limiter
1818
writeLimiter *rate.Limiter
19-
readEnabled atomic.Bool // 读限速开关
20-
writeEnabled atomic.Bool // 写限速开关
21-
readCount atomic.Int64 // 读取计数器
22-
writeCount atomic.Int64 // 写入计数器
19+
readEnabled atomic.Value // 读限速开关
20+
writeEnabled atomic.Value // 写限速开关
21+
readCount int64 // 读取计数器
22+
writeCount int64 // 写入计数器
2323
}
2424

2525
func NewLimiter(readRate, writeRate rate.Limit, burstSize int) *Limiter {
26-
return &Limiter{
26+
l := &Limiter{
2727
readLimiter: rate.NewLimiter(readRate, burstSize),
2828
writeLimiter: rate.NewLimiter(writeRate, burstSize),
2929
}
30+
l.readEnabled.Store(false)
31+
l.writeEnabled.Store(false)
32+
return l
3033
}
3134

3235
// GetCounts 获取读写计数
3336
func (l *Limiter) GetCounts() (readCount, writeCount int64) {
34-
return l.readCount.Load(), l.writeCount.Load()
37+
return atomic.LoadInt64(&l.readCount), atomic.LoadInt64(&l.writeCount)
3538
}
3639

3740
// SetReadRate 设置读取速率
@@ -61,10 +64,10 @@ func (l *Limiter) GetLimits() (readLimit, writeLimit rate.Limit) {
6164

6265
// IsReadEnabled 检查读限速是否启用
6366
func (l *Limiter) IsReadEnabled() bool {
64-
return l.readEnabled.Load()
67+
return l.readEnabled.Load().(bool)
6568
}
6669

6770
// IsWriteEnabled 检查写限速是否启用
6871
func (l *Limiter) IsWriteEnabled() bool {
69-
return l.writeEnabled.Load()
72+
return l.writeEnabled.Load().(bool)
7073
}

0 commit comments

Comments
 (0)