les: move client pool to les/vflux/server (#22495)
* les: move client pool to les/vflux/server * les/vflux/server: un-expose NodeBalance, remove unused fn, fix bugs * tests/fuzzers/vflux: add ClientPool fuzzer * les/vflux/server: fixed balance tests * les: rebase fix * les/vflux/server: fixed more bugs * les/vflux/server: unexported NodeStateMachine fields and flags * les/vflux/server: unexport all internal components and functions * les/vflux/server: fixed priorityPool test * les/vflux/server: polish balance * les/vflux/server: fixed mutex locking error * les/vflux/server: priorityPool bug fixed * common/prque: make Prque wrap-around priority handling optional * les/vflux/server: rename funcs, small optimizations * les/vflux/server: fixed timeUntil * les/vflux/server: separated balance.posValue and negValue * les/vflux/server: polish setup * les/vflux/server: enforce capacity curve monotonicity * les/vflux/server: simplified requestCapacity * les/vflux/server: requestCapacity with target range, no iterations in SetCapacity * les/vflux/server: minor changes * les/vflux/server: moved default factors to balanceTracker * les/vflux/server: set inactiveFlag in priorityPool * les/vflux/server: moved related metrics to vfs package * les/vflux/client: make priorityPool temp state logic cleaner * les/vflux/server: changed log.Crit to log.Error * add vflux fuzzer to oss-fuzz Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
This commit is contained in:
@ -858,6 +858,23 @@ func (ns *NodeStateMachine) GetField(n *enode.Node, field Field) interface{} {
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetState retrieves the current state of the given node. Note that when used in a
|
||||
// subscription callback the result can be out of sync with the state change represented
|
||||
// by the callback parameters so extra safety checks might be necessary.
|
||||
func (ns *NodeStateMachine) GetState(n *enode.Node) Flags {
|
||||
ns.lock.Lock()
|
||||
defer ns.lock.Unlock()
|
||||
|
||||
ns.checkStarted()
|
||||
if ns.closed {
|
||||
return Flags{}
|
||||
}
|
||||
if _, node := ns.updateEnode(n); node != nil {
|
||||
return Flags{mask: node.state, setup: ns.setup}
|
||||
}
|
||||
return Flags{}
|
||||
}
|
||||
|
||||
// SetField sets the given field of the given node and blocks until the operation is finished
|
||||
func (ns *NodeStateMachine) SetField(n *enode.Node, field Field, value interface{}) error {
|
||||
ns.lock.Lock()
|
||||
|
Reference in New Issue
Block a user