summaryrefslogtreecommitdiff
path: root/Assistant/DaemonStatus.hs
Commit message (Collapse)AuthorAge
...
* avoid requeueing a download from a remote that no longer has a keyGravatar Joey Hess2012-08-24
|
* remove pointless bracketGravatar Joey Hess2012-08-23
|
* avoid unnecessary transfer scans when syncing a disconnected remoteGravatar Joey Hess2012-08-22
| | | | | | | | | | | | | | | | | | | | Found a very cheap way to determine when a disconnected remote has diverged, and has new content that needs to be transferred: Piggyback on the git-annex branch update, which already checks for divergence. However, this does not check if new content has appeared locally while disconnected, that should be transferred to the remote. Also, this does not handle cases where the two git repos are in sync, but their content syncing has not caught up yet. This code could have its efficiency improved: * When multiple remotes are synced, if any one has diverged, they're all queued for transfer scans. * The transfer scanner could be told whether the remote has new content, the local repo has new content, or both, and could optimise its scan accordingly.
* 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.
* process group killingGravatar Joey Hess2012-08-10
| | | | | | | | | | | | | | | | | | | | This seems to work pretty well. Handled the process groups like this: - git-annex processes started by the assistant for transfers are run in their own process groups. - otherwise, rely on the shell to allocate a process group for git-annex There is potentially a problem if some other program runs git-annex directly (not using sh -c) The program and git-annex would then be in the same process group. If that git-annex starts a transfer and it's canceled, the program would also get killed. May or may not be a desired result. Also, the new updateTransferInfo probably closes a race where it was possible for the thread id to not be recorded in the transfer info, if the transfer info file from the transfer process is read first.
* added an alert after a file transferGravatar Joey Hess2012-08-06
|
* fix kqueue buildGravatar Joey Hess2012-07-30
|
* implement server-side alert closingGravatar Joey Hess2012-07-30
| | | | | Rather than using bootstrap's client-side closing. Now closed alerts stay closed.
* prune old filler alertsGravatar Joey Hess2012-07-30
|
* make old activiy alerts stay visibleGravatar Joey Hess2012-07-30
| | | | | | They're updated to show whether the activity succeeded or failed. This adds several TODOs to the code to fix later.
* better ordering of alertsGravatar Joey Hess2012-07-29
|
* add alerts to DaemonStatusGravatar Joey Hess2012-07-29
|
* refactorGravatar Joey Hess2012-07-29
|
* send notifications when the TransferQueue is changedGravatar Joey Hess2012-07-28
| | | | | | The fun part was making it move things from TransferQueue to currentTransfers entirely atomically. Which will avoid inconsistent display if the WebApp renders the current status at just the wrong time. STM to the rescue!
* move DaemonStatus manipulation out of the Annex monad to IOGravatar Joey Hess2012-07-28
| | | | | | I've convinced myself that nothing in DaemonStatus can deadlock, as it always keepts the TMVar full. That was the only reason it was in the Annex monad.
* add a NotificationBroadcaster to DaemonStatusGravatar Joey Hess2012-07-28
| | | | | First use of it is to make the status checkpointer thread block until there is really a change to the status.
* pull from newly mounted git remotesGravatar Joey Hess2012-07-22
|
* wait on child transfer processes, and invalidate cacheGravatar Joey Hess2012-07-06
| | | | | | There's still a bug; if the child updates its transfer info file, then the data from it will superscede the TransferInfo, losing the info that we should wait on this child.
* wrote transfer threadGravatar Joey Hess2012-07-05
| | | | finally!
* queue Uploads of newly added files to remotesGravatar Joey Hess2012-07-05
| | | | | | | Added knownRemotes to DaemonStatus. This list is not entirely trivial to calculate, and having it here should make it easier to add/remove remotes on the fly later on. It did require plumbing the daemonstatus through to some more threads.
* added currentTransfersGravatar Joey Hess2012-07-02
|
* licenseGravatar Joey Hess2012-06-23
|
* check for unstaged old symlinks in the sanity checkerGravatar Joey Hess2012-06-13
|
* add sanity checker threadGravatar Joey Hess2012-06-13
| | | | Currently wakes up once a day, and does nothing. :)
* tweakGravatar Joey Hess2012-06-13
|
* finish daemon status threadGravatar Joey Hess2012-06-13
|
* implement daemon status serialization to a fileGravatar Joey Hess2012-06-13
| | | | | Also afterLastDaemonRun, with 10 minute slop to handle majority of clock skew issues.
* reorganizeGravatar Joey Hess2012-06-13