summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-08-10 19:03:40 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-08-10 19:03:40 -0400
commitf89a954be9dbdfb5c9bd9b4dbe5cf935fc399df6 (patch)
tree75920bc75d8f82498b91df1f71b8671a3de2bdb5
parent96fe122d0940a02c55344215d90ffe6ebe624314 (diff)
blog for the day
-rw-r--r--doc/design/assistant/blog/day_58__more_transfer_control.mdwn26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_58__more_transfer_control.mdwn b/doc/design/assistant/blog/day_58__more_transfer_control.mdwn
new file mode 100644
index 000000000..08b69a75d
--- /dev/null
+++ b/doc/design/assistant/blog/day_58__more_transfer_control.mdwn
@@ -0,0 +1,26 @@
+Unexpectedly managed a mostly productive day today.
+
+Went ahead with making the assistant run separate `git-annex` processes for
+transfers. This will currently fail if git-annex is not installed in PATH.
+(Deferred dealing with that.)
+
+To stop a transfer, the webapp needs to signal not just the git-annex
+process, but all its children. I'm using process groups for this, which is
+working, but I'm not extremely happy with.
+
+Anyway, the webapp's UI can now be used for stopping transfers, and it
+wasn't far from there to also implementing pausing of transfers.
+
+Pausing a transfer is actually the same as stopping it, except a special
+signal is sent to the transfer control thread, which keeps running, despite
+the git-annex process having been killed, waits for a special resume
+signal, and restarts the transfer. This way a paused transfer continues to
+occupy a transfer slot, which prevents other queued transfers from running.
+This seems to be the behavior that makes sense.
+
+Still need to wire up the webapp's button for starting a transfer. For a
+paused transfer, that will just need to resume it. I have not decided what
+the button should do when used on a transfer that is queued but not running
+yet. Maybe it forces it to run even if all transfer slots are already in
+use? Maybe it stops one of the currently running transfers to free up a
+slot?