Skip to content

Commit 6504dce

Browse files
authored
Merge pull request #45 from ellemouton/passContextToGBNClient
gbn+mailbox: pass context to gbn.NewClientConn
2 parents 661e846 + 70bb2cc commit 6504dce

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

gbn/gbn_client.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,15 @@ import (
1313
// The receiveStream function must read from an underlying transport stream.
1414
// The resendTimeout parameter defines the duration to wait before resending data
1515
// if the corresponding ACK for the data is not received.
16-
func NewClientConn(n uint8, sendFunc sendBytesFunc, receiveFunc recvBytesFunc,
17-
opts ...Option) (*GoBackNConn, error) {
16+
func NewClientConn(ctx context.Context, n uint8, sendFunc sendBytesFunc,
17+
receiveFunc recvBytesFunc, opts ...Option) (*GoBackNConn, error) {
1818

1919
if n == math.MaxUint8 {
2020
return nil, fmt.Errorf("n must be smaller than %d",
2121
math.MaxUint8)
2222
}
2323

24-
conn := newGoBackNConn(
25-
context.Background(), sendFunc, receiveFunc, false, n,
26-
)
24+
conn := newGoBackNConn(ctx, sendFunc, receiveFunc, false, n)
2725

2826
// Apply functional options
2927
for _, o := range opts {

gbn/gbn_conn.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,12 @@ func (g *GoBackNConn) Close() error {
350350

351351
g.wg.Wait()
352352

353-
g.pingTicker.Stop()
354-
g.resendTicker.Stop()
353+
if g.pingTicker != nil {
354+
g.pingTicker.Stop()
355+
}
356+
if g.resendTicker != nil {
357+
g.resendTicker.Stop()
358+
}
355359

356360
log.Debugf("GBN is closed, isServer=%v", g.isServer)
357361
})

gbn/gbn_conn_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func TestServerHandshakeTimeout(t *testing.T) {
174174
// Give the server time to be ready for the handshake
175175
time.Sleep(time.Millisecond * 200)
176176

177-
client, err := NewClientConn(10, s2Write, s1Read)
177+
client, err := NewClientConn(ctx, 10, s2Write, s1Read)
178178
require.NoError(t, err)
179179
defer client.Close()
180180

@@ -1205,7 +1205,7 @@ func setUpClientServerConns(t *testing.T, n uint8,
12051205
// Give the server time to be ready for the handshake
12061206
time.Sleep(time.Millisecond * 200)
12071207

1208-
client, err := NewClientConn(n, cWrite, cRead, opts...)
1208+
client, err := NewClientConn(ctx, n, cWrite, cRead, opts...)
12091209
require.NoError(t, err)
12101210

12111211
wg.Wait()

mailbox/client_conn.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func NewClientConn(ctx context.Context, sid [64]byte, serverHost string,
173173
}
174174

175175
gbnConn, err := gbn.NewClientConn(
176-
gbnN, c.sendToStream, c.recvFromStream, c.gbnOptions...,
176+
ctx, gbnN, c.sendToStream, c.recvFromStream, c.gbnOptions...,
177177
)
178178
if err != nil {
179179
return nil, err
@@ -218,7 +218,7 @@ func RefreshClientConn(ctx context.Context, c *ClientConn) (*ClientConn,
218218
}
219219

220220
gbnConn, err := gbn.NewClientConn(
221-
gbnN, cc.sendToStream, cc.recvFromStream, cc.gbnOptions...,
221+
ctx, gbnN, cc.sendToStream, cc.recvFromStream, cc.gbnOptions...,
222222
)
223223
if err != nil {
224224
return nil, err

0 commit comments

Comments
 (0)