diff options
author | Joey Hess <joey@kitenet.net> | 2012-09-18 14:10:33 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-09-18 14:10:33 -0400 |
commit | 3a0cffcfed4e6824b0771ce69f70095a4e3b9917 (patch) | |
tree | 87787f6354d659c7e7696023789270e8ca32d06a /Assistant.hs | |
parent | e9238e958877dff9d12a5a0ed396e93931de95ce (diff) |
when a Download finishes, queue Uploads
This ensures file propigate takes place in situations such as: Usb drive A
is connected to B. A's master branch is already in sync with B, but it is
being used to sneakernet some files around, so B downloads those. There is no
master branch change, so C does not request these files. B needs to upload
the files it just downloaded on to C, etc.
My first try at this, I saw loops happen. B uploaded to C, which then
tried to upload back to B (because it had not received the updated
git-annex branch from B yet). B already had the file, but it still created
a transfer info file from the incoming transfer, and its watcher saw
that be removed, and tried to upload back to C.
These loops should have been fixed by my previous commit. (They never
affected ssh remotes, only local ones, it seemed.) While C might still try
to upload to B, or to some other remote that already has the file, the
extra work dies out there.
Diffstat (limited to 'Assistant.hs')
-rw-r--r-- | Assistant.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Assistant.hs b/Assistant.hs index b0a00ebe8..d1ef12975 100644 --- a/Assistant.hs +++ b/Assistant.hs @@ -186,7 +186,7 @@ startAssistant assistant daemonize webappwaiter = withThreadState $ \st -> do , assist $ pushThread st dstatus commitchan pushmap , assist $ pushRetryThread st dstatus pushmap , assist $ mergeThread st dstatus transferqueue - , assist $ transferWatcherThread st dstatus + , assist $ transferWatcherThread st dstatus transferqueue , assist $ transferPollerThread st dstatus , assist $ transfererThread st dstatus transferqueue transferslots , assist $ daemonStatusThread st dstatus |