mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
distribution/xfer: un-export DoFunc type
It's only used internally and by non-exported functions, so it doesn't have to be exported. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
4d6c6a5000
commit
79ea1b16b1
4 changed files with 13 additions and 13 deletions
|
@ -166,7 +166,7 @@ func (ldm *LayerDownloadManager) Download(ctx context.Context, initialRootFS ima
|
||||||
// Layer is not known to exist - download and register it.
|
// Layer is not known to exist - download and register it.
|
||||||
progress.Update(progressOutput, descriptor.ID(), "Pulling fs layer")
|
progress.Update(progressOutput, descriptor.ID(), "Pulling fs layer")
|
||||||
|
|
||||||
var xferFunc DoFunc
|
var xferFunc doFunc
|
||||||
if topDownload != nil {
|
if topDownload != nil {
|
||||||
xferFunc = ldm.makeDownloadFunc(descriptor, "", topDownload)
|
xferFunc = ldm.makeDownloadFunc(descriptor, "", topDownload)
|
||||||
defer topDownload.transfer.release(watcher)
|
defer topDownload.transfer.release(watcher)
|
||||||
|
@ -228,7 +228,7 @@ func (ldm *LayerDownloadManager) Download(ctx context.Context, initialRootFS ima
|
||||||
// complete before the registration step, and registers the downloaded data
|
// complete before the registration step, and registers the downloaded data
|
||||||
// on top of parentDownload's resulting layer. Otherwise, it registers the
|
// on top of parentDownload's resulting layer. Otherwise, it registers the
|
||||||
// layer on top of the ChainID given by parentLayer.
|
// layer on top of the ChainID given by parentLayer.
|
||||||
func (ldm *LayerDownloadManager) makeDownloadFunc(descriptor DownloadDescriptor, parentLayer layer.ChainID, parentDownload *downloadTransfer) DoFunc {
|
func (ldm *LayerDownloadManager) makeDownloadFunc(descriptor DownloadDescriptor, parentLayer layer.ChainID, parentDownload *downloadTransfer) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
||||||
d := &downloadTransfer{
|
d := &downloadTransfer{
|
||||||
transfer: newTransfer(),
|
transfer: newTransfer(),
|
||||||
|
@ -392,7 +392,7 @@ func (ldm *LayerDownloadManager) makeDownloadFunc(descriptor DownloadDescriptor,
|
||||||
// parentDownload. This function does not log progress output because it would
|
// parentDownload. This function does not log progress output because it would
|
||||||
// interfere with the progress reporting for sourceDownload, which has the same
|
// interfere with the progress reporting for sourceDownload, which has the same
|
||||||
// Key.
|
// Key.
|
||||||
func (ldm *LayerDownloadManager) makeDownloadFuncFromDownload(descriptor DownloadDescriptor, sourceDownload *downloadTransfer, parentDownload *downloadTransfer) DoFunc {
|
func (ldm *LayerDownloadManager) makeDownloadFuncFromDownload(descriptor DownloadDescriptor, sourceDownload *downloadTransfer, parentDownload *downloadTransfer) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
||||||
d := &downloadTransfer{
|
d := &downloadTransfer{
|
||||||
transfer: newTransfer(),
|
transfer: newTransfer(),
|
||||||
|
|
|
@ -263,13 +263,13 @@ func (t *xfer) close() {
|
||||||
t.mu.Unlock()
|
t.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoFunc is a function called by the transferManager to actually perform
|
// doFunc is a function called by the transferManager to actually perform
|
||||||
// a transfer. It should be non-blocking. It should wait until the start channel
|
// a transfer. It should be non-blocking. It should wait until the start channel
|
||||||
// is closed before transferring any data. If the function closes inactive, that
|
// is closed before transferring any data. If the function closes inactive, that
|
||||||
// signals to the transferManager that the job is no longer actively moving
|
// signals to the transferManager that the job is no longer actively moving
|
||||||
// data - for example, it may be waiting for a dependent transfer to finish.
|
// data - for example, it may be waiting for a dependent transfer to finish.
|
||||||
// This prevents it from taking up a slot.
|
// This prevents it from taking up a slot.
|
||||||
type DoFunc func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer
|
type doFunc func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer
|
||||||
|
|
||||||
// transferManager is used by LayerDownloadManager and LayerUploadManager to
|
// transferManager is used by LayerDownloadManager and LayerUploadManager to
|
||||||
// schedule and deduplicate transfers. It is up to the transferManager
|
// schedule and deduplicate transfers. It is up to the transferManager
|
||||||
|
@ -301,7 +301,7 @@ func (tm *transferManager) setConcurrency(concurrency int) {
|
||||||
// transfer checks if a transfer matching the given key is in progress. If not,
|
// transfer checks if a transfer matching the given key is in progress. If not,
|
||||||
// it starts one by calling xferFunc. The caller supplies a channel which
|
// it starts one by calling xferFunc. The caller supplies a channel which
|
||||||
// receives progress output from the transfer.
|
// receives progress output from the transfer.
|
||||||
func (tm *transferManager) transfer(key string, xferFunc DoFunc, progressOutput progress.Output) (transfer, *watcher) {
|
func (tm *transferManager) transfer(key string, xferFunc doFunc, progressOutput progress.Output) (transfer, *watcher) {
|
||||||
tm.mu.Lock()
|
tm.mu.Lock()
|
||||||
defer tm.mu.Unlock()
|
defer tm.mu.Unlock()
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTransfer(t *testing.T) {
|
func TestTransfer(t *testing.T) {
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
||||||
select {
|
select {
|
||||||
case <-start:
|
case <-start:
|
||||||
|
@ -71,7 +71,7 @@ func TestConcurrencyLimit(t *testing.T) {
|
||||||
const concurrencyLimit = 3
|
const concurrencyLimit = 3
|
||||||
var runningJobs int32
|
var runningJobs int32
|
||||||
|
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
||||||
xfer := newTransfer()
|
xfer := newTransfer()
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -130,7 +130,7 @@ func TestInactiveJobs(t *testing.T) {
|
||||||
var runningJobs int32
|
var runningJobs int32
|
||||||
testDone := make(chan struct{})
|
testDone := make(chan struct{})
|
||||||
|
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
||||||
xfer := newTransfer()
|
xfer := newTransfer()
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -190,7 +190,7 @@ func TestInactiveJobs(t *testing.T) {
|
||||||
func TestWatchRelease(t *testing.T) {
|
func TestWatchRelease(t *testing.T) {
|
||||||
ready := make(chan struct{})
|
ready := make(chan struct{})
|
||||||
|
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, _ chan<- struct{}) transfer {
|
||||||
xfer := newTransfer()
|
xfer := newTransfer()
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -279,7 +279,7 @@ func TestWatchRelease(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWatchFinishedTransfer(t *testing.T) {
|
func TestWatchFinishedTransfer(t *testing.T) {
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, _ <-chan struct{}, _ chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, _ <-chan struct{}, _ chan<- struct{}) transfer {
|
||||||
xfer := newTransfer()
|
xfer := newTransfer()
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -321,7 +321,7 @@ func TestDuplicateTransfer(t *testing.T) {
|
||||||
|
|
||||||
var xferFuncCalls int32
|
var xferFuncCalls int32
|
||||||
|
|
||||||
makeXferFunc := func(id string) DoFunc {
|
makeXferFunc := func(id string) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, _ <-chan struct{}, _ chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, _ <-chan struct{}, _ chan<- struct{}) transfer {
|
||||||
atomic.AddInt32(&xferFuncCalls, 1)
|
atomic.AddInt32(&xferFuncCalls, 1)
|
||||||
xfer := newTransfer()
|
xfer := newTransfer()
|
||||||
|
|
|
@ -102,7 +102,7 @@ func (lum *LayerUploadManager) Upload(ctx context.Context, layers []UploadDescri
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lum *LayerUploadManager) makeUploadFunc(descriptor UploadDescriptor) DoFunc {
|
func (lum *LayerUploadManager) makeUploadFunc(descriptor UploadDescriptor) doFunc {
|
||||||
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
return func(progressChan chan<- progress.Progress, start <-chan struct{}, inactive chan<- struct{}) transfer {
|
||||||
u := &uploadTransfer{
|
u := &uploadTransfer{
|
||||||
transfer: newTransfer(),
|
transfer: newTransfer(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue