Improve: use atomic for connection statistic (#938)

This commit is contained in:
Kr328
2020-09-02 16:34:12 +08:00
committed by GitHub
parent a32ee13fc9
commit 7631bcc99e
2 changed files with 23 additions and 28 deletions

View File

@ -37,7 +37,7 @@ func (tt *tcpTracker) ID() string {
func (tt *tcpTracker) Read(b []byte) (int, error) {
n, err := tt.Conn.Read(b)
download := int64(n)
tt.manager.Download() <- download
tt.manager.PushDownloaded(download)
tt.DownloadTotal += download
return n, err
}
@ -45,7 +45,7 @@ func (tt *tcpTracker) Read(b []byte) (int, error) {
func (tt *tcpTracker) Write(b []byte) (int, error) {
n, err := tt.Conn.Write(b)
upload := int64(n)
tt.manager.Upload() <- upload
tt.manager.PushUploaded(upload)
tt.UploadTotal += upload
return n, err
}
@ -92,7 +92,7 @@ func (ut *udpTracker) ID() string {
func (ut *udpTracker) ReadFrom(b []byte) (int, net.Addr, error) {
n, addr, err := ut.PacketConn.ReadFrom(b)
download := int64(n)
ut.manager.Download() <- download
ut.manager.PushDownloaded(download)
ut.DownloadTotal += download
return n, addr, err
}
@ -100,7 +100,7 @@ func (ut *udpTracker) ReadFrom(b []byte) (int, net.Addr, error) {
func (ut *udpTracker) WriteTo(b []byte, addr net.Addr) (int, error) {
n, err := ut.PacketConn.WriteTo(b, addr)
upload := int64(n)
ut.manager.Upload() <- upload
ut.manager.PushUploaded(upload)
ut.UploadTotal += upload
return n, err
}