summaryrefslogtreecommitdiff
path: root/Assistant/TransferSlots.hs
Commit message (Collapse)AuthorAge
* maintain pools of running transferkeys processes (untested)Gravatar Joey Hess2013-03-19
|
* better handling of lifting from XMPP -> AssistantGravatar Joey Hess2012-11-05
|
* where indentationGravatar Joey Hess2012-10-31
|
* finished pushing Assistant monad into all relevant filesGravatar Joey Hess2012-10-30
| | | | All temporary and old functions are removed.
* pushed Assistant monad down into DaemonStatus codeGravatar Joey Hess2012-10-30
| | | | | | Currently have three old versions of functions that more reworking is needed to remove: getDaemonStatusOld, modifyDaemonStatusOld_, and modifyDaemonStatusOld
* split remaining assistant typesGravatar Joey Hess2012-10-30
|
* split out daemonstatus typesGravatar Joey Hess2012-10-30
|
* TransferSlots: Use SafeSemaphore's MSemN instead of QSemN from baseGravatar Ben Gamari2012-10-05
| | | | | As described in the documentation, QSemN is unsafe for a variety of reasons.
* hlintGravatar Joey Hess2012-09-13
|
* use only one level of exception handling for transfer slotGravatar Joey Hess2012-08-29
|
* bugGravatar Joey Hess2012-08-29
|
* fix repeated pause and resume of a transferGravatar Joey Hess2012-08-29
| | | | | | | I had an intuition that throwTo might be blocking because an exception was caught and the exception handler was running. This seems to be the case, and is avoided by using try. However, I can't really find anywhere in throwTo's documentation that justifies this behavior.
* remove debug printsGravatar Joey Hess2012-08-29
|
* fix a transfers display glitchGravatar Joey Hess2012-08-28
| | | | | | | | Run code that pops off the next queued transfer and adds it to the active transfer map within an allocated transfer slot, rather than before allocating a slot. Fixes the transfers display, which had been displaying the next transfer as a running transfer, while the previous transfer was still running.
* run resumed transfers immediately, do not wait for free transfer slotGravatar Joey Hess2012-08-12
| | | | | The resumed transfer still uses a slot, so will delay other, queued transfers from starting.
* implement pausing of transfersGravatar Joey Hess2012-08-10
| | | | | | A paused transfer's thread keeps running, keeping the slot in use. This is intentional; pausing a transfer should not let other queued transfers to run in its place.
* fork off git-annex copy for transfersGravatar Joey Hess2012-08-10
| | | | | | | | | | | | | | This doesn't quite work, because canceling a transfer sends a signal to git-annex, but not to rsync (etc). Looked at making git-annex run in its own process group, which could then be killed, and would kill child processes. But, rsync checks if it's process group is the foreground process group and doesn't show progress if not, and when git has run git-annex, if git-annex makes a new process group, that is not the case. Also, if git has run git-annex, ctrl-c wouldn't be propigated to it if it made a new process group. So this seems like a blind alley, but recording it here just in case.
* transfer cancelingGravatar Joey Hess2012-08-08
| | | | | | | | | | Should work (untested) for transfers being run by other processes. Not yet by transfers being run by the assistant. killThread does not kill processes forked off by a thread. To fix this, will probably need to make `git annex getkey` and `git annex sendkey` commands that operate on keys, and write their own transfer info. Then the assistant can run them, and kill them, as needed.
* avoid spawning new transfer thread until a slot becomes availableGravatar Joey Hess2012-07-25
|
* run file transfers in threads, not processesGravatar Joey Hess2012-07-18
| | | | | | This should fix OSX/BSD issues with not noticing transfer information files with kqueue. Now that threads are used, the thread can manage the transfer slot allocation and deallocation by itself; much cleaner.
* fix transfer slots blocking and refilling when transfers are stoppedGravatar Joey Hess2012-07-06
| | | | | There's a bug, if a transfer process notices it needs to do nothing, it never starts the transfer, so the slot is never freed.
* it builds againGravatar Joey Hess2012-07-06
Currently nothing waits on transfer processes. (Second drive of the day fried. Not concentrating very well.)