From bb73dc995ffd3fcc05ff579f2aa0f8bf9b479f4a Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Thu, 9 Jun 2016 16:21:36 -0400 Subject: [PATCH] 9187: Add comments. --- sdk/go/dispatch/dispatch.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sdk/go/dispatch/dispatch.go b/sdk/go/dispatch/dispatch.go index 33569953da..54d596fee8 100644 --- a/sdk/go/dispatch/dispatch.go +++ b/sdk/go/dispatch/dispatch.go @@ -102,9 +102,9 @@ func (dispatcher *Dispatcher) notMine(uuid string) { } } -// Check if there is a channel for updates associated with this container. If -// so (and update is true) send the container record on the channel and return -// true, if not return false. +// checkMine returns true/false if there is a channel for updates associated +// with container c. If update is true, also send the container record on +// the channel. func (dispatcher *Dispatcher) checkMine(c Container, update bool) bool { dispatcher.mineMutex.Lock() defer dispatcher.mineMutex.Unlock() @@ -177,6 +177,10 @@ func (dispatcher *Dispatcher) pollContainers() { func (dispatcher *Dispatcher) handleUpdate(container Container) { if container.State == Queued && dispatcher.checkMine(container, false) { + // If we previously started the job, something failed, and it + // was re-queued, this dispatcher might still be monitoring it. + // Stop the existing monitor, then try to lock and run it + // again. dispatcher.notMine(container.UUID) } -- 2.30.2