Просмотр исходного кода

Cleanup pools from wrappes

tags/v1.0.6^2^2
9seconds 5 лет назад
Родитель
Сommit
86a8f69273

+ 2
- 4
wrappers/packet/mtproto_frame.go Просмотреть файл

@@ -42,8 +42,7 @@ type wrapperMtprotoFrame struct {
42 42
 }
43 43
 
44 44
 func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funlen
45
-	buf := acquireMtprotoFrameBytesBuffer()
46
-	defer releaseMtprotoFrameBytesBuffer(buf)
45
+	buf := &bytes.Buffer{}
47 46
 
48 47
 	sum := crc32.NewIEEE()
49 48
 	writer := io.MultiWriter(buf, sum)
@@ -114,8 +113,7 @@ func (w *wrapperMtprotoFrame) Write(p conntypes.Packet) error {
114 113
 	messageLength := 4 + 4 + len(p) + 4
115 114
 	paddingLength := (aes.BlockSize - messageLength%aes.BlockSize) % aes.BlockSize
116 115
 
117
-	buf := acquireMtprotoFrameBytesBuffer()
118
-	defer releaseMtprotoFrameBytesBuffer(buf)
116
+	buf := &bytes.Buffer{}
119 117
 
120 118
 	binary.Write(buf, binary.LittleEndian, uint32(messageLength)) // nolint: errcheck
121 119
 	binary.Write(buf, binary.LittleEndian, w.writeSeqNo)          // nolint: errcheck

+ 0
- 23
wrappers/packet/pools.go Просмотреть файл

@@ -1,23 +0,0 @@
1
-package packet
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolMtprotoFrameBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireMtprotoFrameBytesBuffer() *bytes.Buffer {
17
-	return poolMtprotoFrameBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseMtprotoFrameBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolMtprotoFrameBytesBuffer.Put(buf)
23
-}

+ 1
- 3
wrappers/packetack/client_abridged.go Просмотреть файл

@@ -88,9 +88,7 @@ func (w *wrapperClientAbridged) Write(packet conntypes.Packet, acks *conntypes.C
88 88
 		return nil
89 89
 	case packetLength < clientAbridgedLargePacketLength:
90 90
 		length24 := utils.ToUint24(uint32(packetLength))
91
-
92
-		buf := acquireClientBytesBuffer()
93
-		defer releaseClientBytesBuffer(buf)
91
+		buf := bytes.Buffer{}
94 92
 
95 93
 		buf.WriteByte(byte(clientAbridgedSmallPacketLength))
96 94
 		buf.Write(length24[:])

+ 3
- 3
wrappers/packetack/client_intermediate_secure.go Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package packetack
2 2
 
3 3
 import (
4
+	"bytes"
4 5
 	"encoding/binary"
5 6
 	"fmt"
6 7
 	"math/rand"
@@ -34,10 +35,9 @@ func (w *wrapperClientIntermediateSecure) Write(packet conntypes.Packet, acks *c
34 35
 		return nil
35 36
 	}
36 37
 
37
-	buf := acquireClientBytesBuffer()
38
-	defer releaseClientBytesBuffer(buf)
39
-
38
+	buf := &bytes.Buffer{}
40 39
 	paddingLength := rand.Intn(4)
40
+
41 41
 	buf.Grow(4 + len(packet) + paddingLength)
42 42
 
43 43
 	binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) // nolint: errcheck

+ 0
- 23
wrappers/packetack/pools.go Просмотреть файл

@@ -1,23 +0,0 @@
1
-package packetack
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolClientBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireClientBytesBuffer() *bytes.Buffer {
17
-	return poolClientBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseClientBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolClientBytesBuffer.Put(buf)
23
-}

+ 2
- 4
wrappers/stream/faketls.go Просмотреть файл

@@ -39,13 +39,11 @@ func (w *wrapperFakeTLS) WriteTimeout(p []byte, timeout time.Duration) (int, err
39 39
 
40 40
 func (w *wrapperFakeTLS) write(p []byte, writeFunc func([]byte) (int, error)) (int, error) {
41 41
 	sum := 0
42
-
43
-	buf := acquireBytesBuffer()
44
-	defer releaseBytesBuffer(buf)
42
+	buf := bytes.Buffer{}
45 43
 
46 44
 	for _, v := range tlstypes.MakeRecords(p) {
47 45
 		buf.Reset()
48
-		v.WriteBytes(buf)
46
+		v.WriteBytes(&buf)
49 47
 
50 48
 		_, err := writeFunc(buf.Bytes())
51 49
 		if err != nil {

+ 3
- 2
wrappers/stream/mtproto_cipher.go Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package stream
2 2
 
3 3
 import (
4
+	"bytes"
4 5
 	"crypto/aes"
5 6
 	"crypto/cipher"
6 7
 	"crypto/md5"  // nolint: gosec
@@ -53,8 +54,8 @@ func mtprotoDeriveKeys(purpose mtprotoCipherPurpose,
53 54
 	resp *rpc.NonceResponse,
54 55
 	client, remote *net.TCPAddr,
55 56
 	secret []byte) ([]byte, []byte) {
56
-	message := acquireBytesBuffer()
57
-	defer releaseBytesBuffer(message)
57
+
58
+	message := bytes.Buffer{}
58 59
 
59 60
 	message.Write(resp.Nonce)   // nolint: gosec
60 61
 	message.Write(req.Nonce)    // nolint: gosec

+ 3
- 4
wrappers/stream/obfuscated2.go Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 package stream
2 2
 
3 3
 import (
4
+	"bytes"
4 5
 	"crypto/cipher"
5 6
 	"fmt"
6 7
 	"net"
@@ -40,8 +41,7 @@ func (w *wrapperObfuscated2) Read(p []byte) (int, error) {
40 41
 }
41 42
 
42 43
 func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
43
-	buffer := acquireBytesBuffer()
44
-	defer releaseBytesBuffer(buffer)
44
+	buffer := bytes.Buffer{}
45 45
 
46 46
 	buffer.Write(p)
47 47
 
@@ -53,8 +53,7 @@ func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int,
53 53
 }
54 54
 
55 55
 func (w *wrapperObfuscated2) Write(p []byte) (int, error) {
56
-	buffer := acquireBytesBuffer()
57
-	defer releaseBytesBuffer(buffer)
56
+	buffer := bytes.Buffer{}
58 57
 
59 58
 	buffer.Write(p)
60 59
 

+ 0
- 23
wrappers/stream/pools.go Просмотреть файл

@@ -1,23 +0,0 @@
1
-package stream
2
-
3
-import (
4
-	"bytes"
5
-	"sync"
6
-)
7
-
8
-var (
9
-	poolBytesBuffer = sync.Pool{
10
-		New: func() interface{} {
11
-			return &bytes.Buffer{}
12
-		},
13
-	}
14
-)
15
-
16
-func acquireBytesBuffer() *bytes.Buffer {
17
-	return poolBytesBuffer.Get().(*bytes.Buffer)
18
-}
19
-
20
-func releaseBytesBuffer(buf *bytes.Buffer) {
21
-	buf.Reset()
22
-	poolBytesBuffer.Put(buf)
23
-}

Загрузка…
Отмена
Сохранить