Skip to content

Commit 7138332

Browse files
committed
fix: <-timer.C after Stop will hang if timer.C is empty
see golang/go#27169
1 parent 6cf311a commit 7138332

File tree

2 files changed

+2
-10
lines changed

2 files changed

+2
-10
lines changed

client.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -312,11 +312,7 @@ func New(config Config) *Client {
312312
// the event can't be sent within 30s.
313313
func (c *Client) receive(e *Event) {
314314
t := time.NewTimer(30 * time.Second)
315-
defer func() {
316-
if !t.Stop() {
317-
<-t.C
318-
}
319-
}()
315+
defer t.Stop()
320316

321317
select {
322318
case c.rx <- e:

conn.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -486,11 +486,7 @@ func (c *Client) write(event *Event) {
486486
}
487487

488488
t := time.NewTimer(30 * time.Second)
489-
defer func() {
490-
if !t.Stop() {
491-
<-t.C
492-
}
493-
}()
489+
defer t.Stop()
494490

495491
select {
496492
case c.tx <- event:

0 commit comments

Comments
 (0)