Fix: CPU usage fix attempt
This commit is contained in:
parent
be1ae9db83
commit
578995bace
28
dispense.go
28
dispense.go
@ -75,23 +75,27 @@ func (p5 *ProxyEngine) GetAnySOCKS() *Proxy {
|
|||||||
case <-p5.ctx.Done():
|
case <-p5.ctx.Done():
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
//
|
time.Sleep(2 * time.Millisecond)
|
||||||
}
|
}
|
||||||
for _, list := range p5.Valids.Slice() {
|
for _, list := range p5.Valids.Slice() {
|
||||||
list.RLock()
|
list.RLock()
|
||||||
if list.Len() > 0 {
|
if list.Len() < 1 {
|
||||||
list.RUnlock()
|
time.Sleep(15 * time.Millisecond)
|
||||||
sock = list.pop()
|
|
||||||
switch {
|
|
||||||
case sock == nil:
|
|
||||||
p5.recycling()
|
|
||||||
time.Sleep(50 * time.Millisecond)
|
|
||||||
case p5.stillGood(sock):
|
|
||||||
return sock
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.RUnlock()
|
||||||
|
sock = list.pop()
|
||||||
|
switch {
|
||||||
|
case sock == nil:
|
||||||
|
p5.recycling()
|
||||||
|
time.Sleep(50 * time.Millisecond)
|
||||||
|
case p5.stillGood(sock):
|
||||||
|
return sock
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
|
||||||
list.RUnlock()
|
list.RUnlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user