chore: refactoring

This commit is contained in:
kevin
2022-07-19 20:54:45 +08:00
parent b672fe0cbd
commit ffbdf4fa7c
2 changed files with 36 additions and 29 deletions
-29
View File
@@ -135,32 +135,3 @@ func startListener() error {
go pconn.process()
}
}
type delayedWriter struct {
writer io.Writer
delay time.Duration
stopChan <-chan struct{}
}
func newDelayedWriter(writer io.Writer, delay time.Duration, stopChan <-chan struct{}) delayedWriter {
return delayedWriter{
writer: writer,
delay: delay,
stopChan: stopChan,
}
}
func (w delayedWriter) Write(p []byte) (int, error) {
if w.delay == 0 {
return w.writer.Write(p)
}
timer := time.NewTimer(w.delay)
defer timer.Stop()
select {
case <-timer.C:
return w.writer.Write(p)
case <-w.stopChan:
return 0, errClientCanceled
}
}
+36
View File
@@ -0,0 +1,36 @@
package main
import (
"io"
"time"
)
type delayedWriter struct {
writer io.Writer
delay time.Duration
stopChan <-chan struct{}
}
func newDelayedWriter(writer io.Writer, delay time.Duration, stopChan <-chan struct{}) delayedWriter {
return delayedWriter{
writer: writer,
delay: delay,
stopChan: stopChan,
}
}
func (w delayedWriter) Write(p []byte) (int, error) {
if w.delay == 0 {
return w.writer.Write(p)
}
timer := time.NewTimer(w.delay)
defer timer.Stop()
select {
case <-timer.C:
return w.writer.Write(p)
case <-w.stopChan:
return 0, errClientCanceled
}
}