peertaskqueue

package module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2019 License: Apache-2.0, MIT Imports: 5 Imported by: 7

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 New

func New() *PeerTaskQueue

New creates a new PeerTaskQueue

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL