summaryrefslogtreecommitdiff
path: root/doc/design/assistant/inotify.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-06-19 02:16:31 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-06-19 02:16:31 -0400
commit424e58d960e8b307e39e2856f99ed4635f3f7d31 (patch)
tree45f05974f6e0ea099d4ade803646d86efbd88c55 /doc/design/assistant/inotify.mdwn
parentf684f282f288a464e4d7d6d88865256b86a67c84 (diff)
update
Diffstat (limited to 'doc/design/assistant/inotify.mdwn')
-rw-r--r--doc/design/assistant/inotify.mdwn40
1 files changed, 8 insertions, 32 deletions
diff --git a/doc/design/assistant/inotify.mdwn b/doc/design/assistant/inotify.mdwn
index 9d3db9192..7fe2a89ce 100644
--- a/doc/design/assistant/inotify.mdwn
+++ b/doc/design/assistant/inotify.mdwn
@@ -13,6 +13,14 @@ There is a `watch` branch in git that adds the command.
* When you `git annex unlock` a file, it will immediately be re-locked.
+* With kqueue, added files are not staged because the symlink change event
+ it's expecting rarely arrives. I think due to a race.
+
+* With kqueue, if a while is created and still has a writer, it'll
+ give up adding it, and it will never get added. This is because kqueue
+ cannot track file closes. Need to go back and check these files every
+ second or something.
+
## beyond Linux
I'd also like to support OSX and if possible the BSDs.
@@ -58,40 +66,8 @@ I'd also like to support OSX and if possible the BSDs.
* Windows has a Win32 ReadDirectoryChangesW, and perhaps other things.
-## beyond Linux
-
-I'd also like to support OSX and if possible the BSDs.
-
-* kqueue ([haskell bindings](http://hackage.haskell.org/package/kqueue))
- is supported by FreeBSD, OSX, and other BSDs.
-
- From what I can find, kqueue does not provide full directory watching
- capabilities. To watch a file, you have to have an open file descriptor
- to the file. This wouldn't scale.
-
- Gamin does the best it can with just kqueue, supplimented by polling.
- The source file `server/gam_kqueue.c` makes for interesting reading.
- Using gamin to do the heavy lifting is one option.
- ([haskell bindings](http://hackage.haskell.org/package/hlibfam) for FAM;
- gamin shares the API)
-
-* hfsevents ([haskell bindings](http://hackage.haskell.org/package/hfsevents))
- is OSX specific.
-
- Originally it was only directory level, and you were only told a
- directory had changed and not which file. Based on the haskell
- binding's code, from OSX 10.7.0, file level events were added.
-
- This will be harder for me to develop for, since I don't have access to
- OSX machines..
-
-* Windows has a Win32 ReadDirectoryChangesW, and perhaps other things.
-
## todo
-- Support OSes other than Linux; it only uses inotify currently.
- OSX and FreeBSD use the same mechanism, and there is a Haskell interface
- for it,
- Run niced and ioniced? Seems to make sense, this is a background job.
- configurable option to only annex files meeting certian size or
filename criteria