Skip to content

Commit

Permalink
feat(payload): add support for setting concurrency
Browse files Browse the repository at this point in the history
  • Loading branch information
ssut committed Jun 23, 2021
1 parent 6a1bd00 commit d8d68fa
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ type Payload struct {
deltaArchiveManifest *chromeos_update_engine.DeltaArchiveManifest
signatures *chromeos_update_engine.Signatures

concurrency int

metadataSize int64
dataOffset int64
initialized bool
Expand Down Expand Up @@ -101,12 +103,23 @@ func (ph *payloadHeader) ReadFromPayload() error {
// NewPayload creates a new Payload struct
func NewPayload(filename string) Payload {
payload := Payload{
Filename: filename,
Filename: filename,
concurrency: 4,
}

return payload
}

// SetConcurrency sets number of workers
func (p *Payload) SetConcurrency(concurrency int) {
p.concurrency = concurrency
}

// GetConcurrency returns number of workers
func (p *Payload) GetConcurrency() int {
return p.concurrency
}

// Open tries to open payload.bin file defined by Filename
func (p *Payload) Open() error {
file, err := os.Open(p.Filename)
Expand Down Expand Up @@ -318,7 +331,7 @@ func (p *Payload) ExtractSelected(targetDirectory string, partitions []string) e
p.progress = mpb.New()

p.requests = make(chan *request, 100)
p.spawnExtractWorkers(4)
p.spawnExtractWorkers(p.concurrency)

sort.Strings(partitions)

Expand Down

0 comments on commit d8d68fa

Please sign in to comment.