@@ -18,7 +18,6 @@ import (
18
18
"github.com/rsocket/rsocket-go/internal/bytesconv"
19
19
"github.com/rsocket/rsocket-go/internal/common"
20
20
"github.com/rsocket/rsocket-go/internal/fragmentation"
21
- "github.com/rsocket/rsocket-go/internal/map32"
22
21
"github.com/rsocket/rsocket-go/internal/misc"
23
22
"github.com/rsocket/rsocket-go/internal/queue"
24
23
"github.com/rsocket/rsocket-go/lease"
@@ -60,10 +59,10 @@ type DuplexConnection struct {
60
59
sndQueue chan core.WriteableFrame
61
60
sndBacklog []core.WriteableFrame
62
61
responder Responder
63
- messages map32. Map32 // key=streamID, value=callback
62
+ messages sync. Map // key=streamID, value=callback
64
63
sids StreamID
65
64
mtu int
66
- fragments map32. Map32 // key=streamID, value=Joiner
65
+ fragments sync. Map // key=streamID, value=Joiner
67
66
writeDone chan struct {}
68
67
keepaliver * Keepaliver
69
68
cond sync.Cond
@@ -162,11 +161,10 @@ func (dc *DuplexConnection) destroyTransport() {
162
161
}
163
162
164
163
func (dc * DuplexConnection ) destroyHandler (err error ) {
165
- defer dc .messages .Destroy ()
166
164
// TODO: optimize callback map
167
165
var callbacks []callback
168
- dc .messages .Range (func (sid uint32 , v interface {}) bool {
169
- callbacks = append (callbacks , v .(callback ))
166
+ dc .messages .Range (func (_ , value interface {}) bool {
167
+ callbacks = append (callbacks , value .(callback ))
170
168
return true
171
169
})
172
170
for _ , next := range callbacks {
@@ -175,11 +173,10 @@ func (dc *DuplexConnection) destroyHandler(err error) {
175
173
}
176
174
177
175
func (dc * DuplexConnection ) destroyFragment () {
178
- dc .fragments .Range (func (u uint32 , i interface {}) bool {
176
+ dc .fragments .Range (func (_ , i interface {}) bool {
179
177
common .TryRelease (i )
180
178
return true
181
179
})
182
- dc .fragments .Destroy ()
183
180
}
184
181
185
182
func (dc * DuplexConnection ) destroySndQueue () {
@@ -1360,21 +1357,11 @@ func newDuplexConnection(ctx context.Context, reqSche, resSche scheduler.Schedul
1360
1357
leases : leases ,
1361
1358
sndQueue : make (chan core.WriteableFrame , _outChanSize ),
1362
1359
mtu : mtu ,
1363
- messages : map32 .New (map32 .WithCap (32 ), map32 .WithHasher (func (key uint32 , _ int ) int {
1364
- var n int
1365
- if key & 1 == 0 {
1366
- n = int (key ) >> 1
1367
- } else {
1368
- n = (int (key )- 1 )>> 1 + 1
1369
- }
1370
- return n & 31
1371
- })),
1372
- sids : sids ,
1373
- fragments : map32 .New (map32 .WithCap (1 )),
1374
- counter : core .NewTrafficCounter (),
1375
- keepaliver : ka ,
1376
- closed : atomic .NewBool (false ),
1377
- ready : atomic .NewBool (false ),
1360
+ sids : sids ,
1361
+ counter : core .NewTrafficCounter (),
1362
+ keepaliver : ka ,
1363
+ closed : atomic .NewBool (false ),
1364
+ ready : atomic .NewBool (false ),
1378
1365
}
1379
1366
1380
1367
c .cond .L = & c .locker
0 commit comments