mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-10-01 16:26:02 -04:00
refine locker in sending worker
This commit is contained in:
parent
78ef65e17b
commit
5448ec1fe4
@ -307,6 +307,8 @@ func (this *SendingWorker) ProcessSegment(current uint32, seg *AckSegment) {
|
||||
|
||||
func (this *SendingWorker) Push(b []byte) int {
|
||||
nBytes := 0
|
||||
this.Lock()
|
||||
defer this.Unlock()
|
||||
for len(b) > 0 && !this.queue.IsFull() {
|
||||
var size int
|
||||
if len(b) > int(this.conn.mss) {
|
||||
@ -316,9 +318,7 @@ func (this *SendingWorker) Push(b []byte) int {
|
||||
}
|
||||
seg := NewDataSegment()
|
||||
seg.Data = alloc.NewSmallBuffer().Clear().Append(b[:size])
|
||||
this.Lock()
|
||||
this.queue.Push(seg)
|
||||
this.Unlock()
|
||||
b = b[size:]
|
||||
nBytes += size
|
||||
}
|
||||
@ -331,7 +331,7 @@ func (this *SendingWorker) Write(seg Segment) {
|
||||
dataSeg.Conv = this.conn.conv
|
||||
dataSeg.SendingNext = this.firstUnacknowledged
|
||||
dataSeg.Opt = 0
|
||||
if this.conn.state == StateReadyToClose {
|
||||
if this.conn.State() == StateReadyToClose {
|
||||
dataSeg.Opt = SegmentOptionClose
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user