summaryrefslogtreecommitdiff
path: root/Assistant.hs
Commit message (Collapse)AuthorAge
...
* webapp now displays the real running and queued transfersGravatar Joey Hess2012-07-27
| | | | yowza!!!
* update thread listGravatar Joey Hess2012-07-26
|
* git annex webapp now opens a browser to the webappGravatar Joey Hess2012-07-25
| | | | Also, starts the assistant if it wasn't already running.
* run yesod, and launch webapp on startupGravatar Joey Hess2012-07-25
|
* add TransferScanner threadGravatar Joey Hess2012-07-22
| | | | | Efficiently finding transfers that need to be done to get two repos back in sync seems like an interesting problem.
* debugging improvementsGravatar Joey Hess2012-07-20
| | | | | | add timestamps to debug messages Add lots of debug output in the assistant's threads.
* tweakGravatar Joey Hess2012-07-20
|
* MountWatcher threadGravatar Joey Hess2012-07-19
| | | | Currently only prints mount points when mounts happen.
* 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.)
* unfinished (and unbuildable) work toward separate transfer processesGravatar Joey Hess2012-07-05
|
* wrote transfer threadGravatar Joey Hess2012-07-05
| | | | finally!
* enqueue Downloads when new symlinks appear to content we don't haveGravatar Joey Hess2012-07-05
|
* 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.
* add transfer watching threadGravatar Joey Hess2012-07-03
| | | | Worked the 1st try!
* refactorGravatar Joey Hess2012-06-28
|
* improve thread termination handlingGravatar Joey Hess2012-06-28
| | | | | | | | | | The reason the DirWatcher had to wait for program termination was because it used withINotify, so when it finished, its watcher threads were killed. But since I have two DirWatcher threads now, that was not good, and could perhaps explain the MVar problem I saw yesterday. In any case, fixed this part of the code by making the DirWatcher return a handle that can be used to stop it, and now the main Assistant thread is the only one calling waitForTermination.
* tweakGravatar Joey Hess2012-06-28
|
* use a TMVarGravatar Joey Hess2012-06-26
| | | | | | | SampleMVar won't work; between getting the current value and changing it, another thread could made a change, which would get lost. TMVar works well; this update situation is handled by atomic transactions.
* add a push retry threadGravatar Joey Hess2012-06-25
|
* reorg threadsGravatar Joey Hess2012-06-25
|
* added a merger threadGravatar Joey Hess2012-06-22
| | | | | | Wow! I can create a file in repo a, and it instantly* shows up in repo b! * under 1 second anyway
* stub syncer thread and commit channelGravatar Joey Hess2012-06-22
|
* add assistant commandGravatar Joey Hess2012-06-22
| | | | like watch, but more magic
* pending adds now retried for kqueueGravatar Joey Hess2012-06-20
| | | | | | | | | | | | | | | | Rethought how to keep track of pending adds that need to be retried later. The commit thread already run up every second when there are changes, so let's keep pending adds queued as changes until they're safe to add. Also, the committer is now smarter about avoiding empty commits when all the adds are currently unsafe, or in the rare case that an add event for a symlink is not received in time. It may avoid them entirely. This seems to work as before for inotify, and is untested for kqueue. (Actually commit batching seems to be improved for inotify, although I'm not sure why. I'm seeing only two commits made during large batch operations, and the first of those is the non-batch mode commit.)
* maintain set of files pendingAddGravatar Joey Hess2012-06-20
| | | | | | | | Kqueue needs to remember which files failed to be added due to being open, and retry them. This commit gets the data in place for such a retry thread. Broke KeySource out into its own file, and added Eq and Ord instances so it can be stored in a Set.
* fix kevent symlink creationGravatar Joey Hess2012-06-19
|
* noteGravatar Joey Hess2012-06-17
|
* startup check fixesGravatar Joey Hess2012-06-17
| | | | | Move lsof check, and display a message before daemon startup if on an unsupported OS.
* check lsof at runtimeGravatar Joey Hess2012-06-16
|
* add lsof build depsGravatar Joey Hess2012-06-15
| | | | | Check for it in configure; and add a --force option for people without it who want to live dangerously.
* updateGravatar Joey Hess2012-06-13
|
* 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. :)
* finish daemon status threadGravatar Joey Hess2012-06-13
|
* reorganizeGravatar Joey Hess2012-06-13