Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PeerTaskQueue ¶
type PeerTaskQueue struct {
// contains filtered or unexported fields
}
PeerTaskQueue is a prioritized list of tasks to be executed on peers. The queue puts tasks on in blocks, then alternates between peers (roughly) to execute the block with the highest priority, or otherwise the one added first if priorities are equal.
func (*PeerTaskQueue) FullThaw ¶
func (ptq *PeerTaskQueue) FullThaw()
FullThaw completely thaws all peers in the queue so they can execute tasks.
func (*PeerTaskQueue) PopBlock ¶
func (ptq *PeerTaskQueue) PopBlock() *peertask.TaskBlock
PopBlock 'pops' the next block of tasks to be performed. Returns nil if no block exists.
func (*PeerTaskQueue) PushBlock ¶
func (ptq *PeerTaskQueue) PushBlock(to peer.ID, tasks ...peertask.Task)
PushBlock adds a new block of tasks for the given peer to the queue
func (*PeerTaskQueue) Remove ¶
func (ptq *PeerTaskQueue) Remove(identifier peertask.Identifier, p peer.ID)
Remove removes a task from the queue.
func (*PeerTaskQueue) ThawRound ¶
func (ptq *PeerTaskQueue) ThawRound()
ThawRound unthaws peers incrementally, so that those have been frozen the least become unfrozen and able to execute tasks first.