| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Putting the transfer on the currentTransfers atomically introduced a bug:
It checks to see if the transfer is in progress, and cancels it.
Fixed by moving that check inside the STM transaction.
|
| |
|
|
|
|
|
|
| |
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!
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
yowza!!!
|
|
|
|
| |
Now scanning runs fully interleaved with transferring.
|
| |
|
|
|
|
|
|
|
| |
Allow transfers to be added with blocking until the queue is sufficiently
small.
Better control over which end of the queue to add a transfer to.
|
|
|
|
|
| |
Efficiently finding transfers that need to be done to get two repos back
in sync seems like an interesting problem.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Also converted its timestand to posix seconds, like is used in the other
log files.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
finally!
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|