Fix deadlock in kcp.read

pull/215/head
v2ray 9 years ago
parent e13ea7a54f
commit a88a120938
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

@ -179,8 +179,12 @@ func (this *Connection) Read(b []byte) (int, error) {
return nBytes, nil
}
var timer *time.Timer
if !this.rd.IsZero() && this.rd.Before(time.Now()) {
timer = time.AfterFunc(this.rd.Sub(time.Now()), this.dataInputCond.Signal)
if !this.rd.IsZero() {
duration := this.rd.Sub(time.Now())
if duration <= 0 {
return 0, errTimeout
}
timer = time.AfterFunc(duration, this.dataInputCond.Signal)
}
this.dataInputCond.L.Lock()
this.dataInputCond.Wait()

Loading…
Cancel
Save