| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
| |
This is necessary to generate events when a file is deleted and immediately
replaced. Otherwise, the cache will have the old file, and so no event
would be generated.
Use of getFileStatus is suboptimal, it would be faster to use
the inode returned by readdir -- but getDirectoryContents does not expose
it, so I'd have to copy and modify a lot of low-level code.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
that doesn't exist, or cannot be read
The problem is its use of unsafeInterleaveIO, which causes its IO code
to run when the thunk is forced, outside any exception trapping the caller
may do.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not yet tested and places git-annex-shell is run need to be modified to
pass the new field settings.
Note that rsyncServerSend was changed to fork, rather than directly exec
rsync, because it needs to keep the transfer lock held, and clean up the
transfer log when done.
|
| | |
|
|\| |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Wow! I can create a file in repo a, and it instantly* shows up in repo b!
* under 1 second anyway
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Note that, since this always pushes branch synced/master to the remote, it
assumes that master has already gotten all the commits that are on the
remote merged in. Otherwise, fast-forward prevention may prevent the push.
That's probably ok, because the next stage is to automatically detect
incoming pushes and merge.
|
|/ |
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
Its truncation behavior is a red flag, so avoid using it in these places
where only raw ByteStrings are used, without looking at the data inside.
|
| |
| |
| |
| | |
My, GHC makes this hard.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Handle kevent interruptions in the haskell code, so it can yield to other threads
|
| |
| |
| |
| | |
new event dispatch seems a bit broken though
|
| |
| |
| |
| |
| | |
Kqueue code for dispatching events is not tested and probably doesn't
build.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This *may* now return Add or Delete Changes as appropriate. All I know
for sure is that it compiles.
I had hoped to avoid maintaining my own state about the content of the
directory tree, and rely on git to check what was changed. But I can't;
I need to know about new and deleted subdirectories to add them to the
watch list, and git doesn't deal with (empty) directories.
So, wrote all the code to scan directories, remember their past contents,
compare with current contents, generate appropriate Change events, and
update bookkeeping info appropriately.
|
| | |
|
| |
| |
| |
| | |
Many thanks to geekosaur in #haskell for help with this.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Have not tried to build this yet. But barring minor mistakes, I think it's
good.
|
| |
| |
| |
| | |
Will need to update the DirMap to add or remove subdirs.
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
| |
Could not reproduce the build failure I had seen related to this,
but the numbers were wrong with statfs64. Probably pulling from the wrong
place in the structure. statvfs seems to work..
|
| |
|
|
|
|
|
| |
Check for it in configure; and add a --force option for people without it
who want to live dangerously.
|
|
|
|
|
|
| |
elsewhere
+d is probably more expensive, but I need it
|
| |
|
|
|
|
| |
need to truncate, or part of previous longer pid may be left after writing
|
|
|
|
| |
Uses lsof -F0 to get machine-readable output
|
| |
|