diff --git a/poll.go b/poll.go index 336f686..3b02f2a 100644 --- a/poll.go +++ b/poll.go @@ -61,8 +61,8 @@ var pdPool = sync.Pool{ return &pollDesc{ unblockRd: make(chan interface{}, 1), unblockWr: make(chan interface{}, 1), - rdTimer: time.NewTimer(0), - wdTimer: time.NewTimer(0), + rdTimer: time.NewTimer(time.Duration(1<<63 - 1)), + wdTimer: time.NewTimer(time.Duration(1<<63 - 1)), } }, } diff --git a/read.go b/read.go index 0378dad..d4997aa 100644 --- a/read.go +++ b/read.go @@ -48,7 +48,10 @@ func (s SrtSocket) Read(b []byte) (n int, err error) { if !errors.Is(err, error(EAsyncRCV)) || s.blocking { return } - s.pd.wait(ModeRead) + err = s.pd.wait(ModeRead) + if err != nil { + return + } n, err = srtRecvMsg2Impl(s.socket, b, nil) } } diff --git a/write.go b/write.go index 01cb8a7..1271022 100644 --- a/write.go +++ b/write.go @@ -49,7 +49,10 @@ func (s SrtSocket) Write(b []byte) (n int, err error) { if !errors.Is(err, error(EAsyncSND)) || s.blocking { return } - s.pd.wait(ModeWrite) + err = s.pd.wait(ModeWrite) + if err != nil { + return + } n, err = srtSendMsg2Impl(s.socket, b, nil) } }