@@ -32,11 +32,17 @@ func (m *Me) runworkers() {
3232 m .jobs = make ([]chan job , ncpu )
3333 for i := 0 ; i < ncpu ; i ++ {
3434 m .jobs [i ] = make (chan job , 4096 )
35- go func (jobs <- chan job ) {
35+ go func (i int , jobs <- chan job ) {
3636 for jb := range jobs {
37+ if config .ShowDebugLog {
38+ logrus .Debugln ("[listen] job thread" , i , "call waitordispatch" )
39+ }
3740 m .waitordispatch (jb .addr , jb .buf , jb .n , jb .fil )
41+ if config .ShowDebugLog {
42+ logrus .Debugln ("[listen] job thread" , i , "fin waitordispatch" )
43+ }
3844 }
39- }(m .jobs [i ])
45+ }(i , m .jobs [i ])
4046 }
4147}
4248
@@ -73,9 +79,9 @@ func (m *Me) listen() (conn p2p.Conn, err error) {
7379 fil * uintptr
7480 )
7581 if idx < 0 {
76- lbf = pbuf .NewBytes (lstnbufgragsz )
82+ lbf = pbuf .NewLargeBytes (lstnbufgragsz )
7783 } else {
78- lbf = pbuf .ParseBytes (bufs [idx * lstnbufgragsz : (idx + 1 )* lstnbufgragsz ]... )
84+ lbf = pbuf .ParseBytes (bufs [idx * lstnbufgragsz : (idx + 1 )* lstnbufgragsz : ( idx + 1 ) * lstnbufgragsz ]... ). Ignore ( )
7985 fil = & fils [idx ]
8086 }
8187
@@ -194,37 +200,31 @@ func (m *Me) dispatch(header *head.Packet, body []byte, addr p2p.EndPoint) {
194200 }
195201 return
196202 }
197- if data . Len ( ) < 8 {
203+ if len ( data ) < 8 {
198204 if config .ShowDebugLog {
199- logrus .Debugln ("[listen] drop invalid data len packet key idx:" , header .CipherIndex (), "addt:" , addt , "len" , data . Len ( ))
205+ logrus .Debugln ("[listen] drop invalid data len packet key idx:" , header .CipherIndex (), "addt:" , addt , "len" , len ( data ))
200206 }
201207 return
202208 }
203209 ok := false
204- data .V (func (b []byte ) {
205- ok = algo .IsVaildBlake2bHash8 (header .PreCRC64 (), b )
206- })
210+ ok = algo .IsVaildBlake2bHash8 (header .PreCRC64 (), data )
207211 if ! ok {
208212 if config .ShowDebugLog {
209213 logrus .Debugln ("[listen] drop invalid hash packet" )
210214 }
211215 return
212216 }
213- data = data . SliceFrom ( 8 )
217+ data = data [ 8 :]
214218 if p .usezstd {
215- data .V (func (b []byte ) {
216- old := data
217- data , err = algo .DecodeZstd (b ) // skip hash
218- old .ManualDestroy ()
219- })
219+ data , err = algo .DecodeZstd (data ) // skip hash
220220 if err != nil {
221221 if config .ShowDebugLog {
222222 logrus .Debugln ("[listen] drop invalid zstd packet:" , err )
223223 }
224224 return
225225 }
226226 if config .ShowDebugLog {
227- logrus .Debugln ("[listen] zstd decoded len:" , data . Len ( ))
227+ logrus .Debugln ("[listen] zstd decoded len:" , len ( data ))
228228 }
229229 }
230230 fn , ok := GetDispacher (header .Proto .Proto ())
@@ -233,5 +233,4 @@ func (m *Me) dispatch(header *head.Packet, body []byte, addr p2p.EndPoint) {
233233 return
234234 }
235235 fn (header , p , data )
236- data .ManualDestroy ()
237236}
0 commit comments