1 2009-11-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
3 * DefaultWatcher.cs: patch by James P. Mitchel III.
4 The change corrects an instance of unsynchronized access to shared
5 state and is probably the intent of the original code.
7 2009-09-30 Marek Habersack <mhabersack@novell.com>
9 * InotifyWatcher.cs: optimized the Renamed event child update loop
10 in the previous commit for directories in ProcessEvents.
12 2009-09-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
14 * InotifyWatcher.cs: fixes bug #322330. Patch by Alexander Kojevnikov.
15 This patch fixes the issues reported by the OP and in my previous
16 comment. In particular:
18 Hunks 1 and 4 remove the new_name_needed flag, it's not used
19 anywhere and only adds confusion.
21 Hunk 2 skips DeleteSelf event for sub-directories, they receive the
24 Hunk 3 makes sure that we use a combination of Deleted+Created
25 notifications instead of a single Renamed notification, if the watched item
26 has been moved from one directory to another. This is because RenamedEventArgs
27 supports only one directory name: FullPath is always directory+name,
28 OldFullPath is always directory+old_name.
30 Hunk 5 updates relevant InotifyData instances with the new directory
31 name. Without this, notifications always use the original folder names.
33 The last hunk may be a bit slow as it needs to iterate on all the
34 InotifyData instances. On the other hand, we are already doing it on the
35 Delete event (lines 560:568) and by default inotify allows only 8192 watches
38 2009-07-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
40 * InotifyWatcher.cs: when a watched subdirectory is deleted, remove it
41 from the list of children and only raise an event if it matches the
44 2009-06-04 Marek Habersack <mhabersack@novell.com>
46 * InotifyWatcher.cs: filter pattern should be matched on file name
47 alone, not on the relative path of the file triggering the
48 event. Fixes bug #509998
50 2009-03-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
52 * InotifyWatcher.cs: don't send events when a directory is created
53 unless it matches the pattern. Fixes bug #484082.
55 2009-01-26 Marek Habersack <mhabersack@novell.com>
57 * SearchPattern.cs: make IsMatch work for situations when there is
58 no wildcard in the pattern, but a subdirectory match is being
59 tested, e.g. pattern == "file.txt" and text ==
60 "subdir/file.txt". Lack of support for this has been causing
61 watching for changes to ASP.NET's web.config in subdirectories to
64 2008-11-06 Jonathan Chambers <joncham@gmail.com>
66 * MonoIO.cs : Add DuplicateHandle.
68 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
70 * InotifyWatcher.cs: IN_CLOSE_WRITE is triggered when a writable file is
71 closed, but that does not mean that the file was actually modified.
74 2008-09-08 Rodrigo Kumpera <rkumpera@novell.com>
76 * InotifyWatcher.cs: Really fix #359181.
78 2008-09-01 Dick Porter <dick@ximian.com>
80 * InotifyWatcher.cs: Revert fix for bug 322330, as it is somehow
83 2008-06-20 Dick Porter <dick@ximian.com>
85 * InotifyWatcher.cs: If a directory is renamed, make sure the old
86 version is removed from the requests hash. Fixes bug 322330.
88 2008-06-18 Rodrigo Kumpera <rkumpera@novell.com>
90 * InotifyWatcher.cs: patch from Juraj Skripsky to fix
91 rename events (fixes bug #359181).
94 2008-04-17 Marek Habersack <mhabersack@novell.com>
96 * FileSystemWatcher.cs: added support for NullFileWatcher. Fixes
99 * NullFileWatcher.cs: added an IFileWatcher implementation which
100 does nothing. Selected only by setting the MONO_MANAGED_WATCHER
101 environment variable to 'disabled'. Fixes bug #354701
103 Tue Mar 11 14:29:22 CET 2008 Paolo Molaro <lupus@ximian.com>
105 * InotifyWatcher.cs: patch from Anders Rune Jensen (anders@iola.dk)
106 to reduce memory usage (fixes bug #362147).
108 2007-11-06 Sebastien Pouliot <sebastien@ximian.com>
110 * InvalidDataException.cs: Added private ctor for serialization. Fix
113 2007-10-30 Robert Jordan <robertj@gmx.net>
115 * MonoSyncFileStream.cs: Add.
117 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
119 * FileSystemWatcher.ch (RaiseEvent): Invoke delegate directly, we don't
120 need the extra control provided by using GetInvocationList().
122 2006-11-01 Sebastien Pouliot <sebastien@ximian.com>
124 * ErrorEventHandler.cs: Remove [Serializable] in NET_2_0.
125 * FileSystemEventHandler.cs: Remove [Serializable] in NET_2_0.
126 * FileSystemWatcher.cs: Add missing attributes for NET_2_0.
127 * InvalidDataException.cs: Seal class and remove serialization ctor.
128 * NotifyFilters.cs: Remove [Serializable] in NET_2_0.
129 * RenamedEventHandler.cs: Remove [Serializable] in NET_2_0.
130 * WatcherChangeTypes.cs: Remove [Serializable] in NET_2_0.
132 2006-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
134 * InotifyWatcher.cs: workaround for a weird case. Someone is watching
135 /dev with recursion enabled and the inotify file descriptor shows up
136 as a directory that fails to open. Already reported to Robert Love.
138 2006-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
140 * InotifyWatcher.cs: fix file names for the rename event.
141 * FileSystemWatcher.cs: ignore exceptions that happen when invoking
144 2006-08-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
146 * InotifyWatcher.cs: handle CloseWrite, as it might happen without other
149 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
151 * FileSystemWatcher.cs: avoid argument null when we don't know yet the
154 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
156 * InotifyWatcher.cs: warn about inotify user watches limit.
158 2005-07-31 Sebastien Pouliot <sebastien@ximian.com>
160 * FileSystemWatcher.cs: Add an EnvironmentPermission assert to read
161 environment variable MONO_MANAGED_WATCHER.
163 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
165 * FAMWatcher.cs: remove unused method.
166 * InotifyWatcher.cs: new watcher supporting inotify directly, as there
167 are some distros that do not install 'gamin' anymore. This new watcher
168 takes priority over gamin, fam and default.
169 * FileSystemWatcher.cs: support for the new watcher.
171 2006-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
173 * FAMWatcher.cs: fix race condition when a directory is created and
174 populated before we start monitoring it. Patch by Thong Nguyen.
176 2006-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
178 * FAMWatcher.cs: add new directories to the hashtable after start
179 monitoring them, otherwise the ReqNum is not set. Fixes bug #77971.
181 2006-01-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
183 * FAMWatcher.cs: fix arraylist access when a new directory is added and
184 the new directory is watched too. Closes bug #77068.
186 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
189 * FileSystemWatcher.cs: use libgamin-1.so.0 instead of libfam.so.0 when
190 the runtime finds libgamin. On SUSE libgamin and libfam are not the same
191 libraries (on debian, they are just the same and there's no fam-server).
193 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
195 * FAMWatcher.cs: reverting my patch. Seems that something got
198 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
200 * FAMWatcher.cs: make this really inactive when there are no events to
203 2005-05-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
205 * FAMWatcher.cs: move the call to StartMonitoringDirectory out of any
206 locks. Before, for a high amount of subdirectories (~500) it hanged
207 after filling the write buffer of FAM socket. Fixes bug #74398.
209 2005-04-05 Lluis Sanchez Gual <lluis@novell.com>
211 * FAMWatcher.cs: Fix cast exception when disposing watchers.
213 2005-03-30 Geoff Norton <gnorton@customerdna.com>
215 * KeventWatcher.cs: Fix a file handle leak on raised events.
217 2005-02-10 Lluis Sanchez Gual <lluis@novell.com>
219 * DefaultWatcher.cs: Fix nullref exception when the object is disposed
222 2004-12-03 Geoff Norton <gnorton@customerdna.com>
224 * SearchPattern.cs: Have IsMatch(string)
225 call IsMatch(string, bool) to avoid setting a instance variable in a
226 method that logically should not be changing it.
228 2004-12-02 Geoff Norton <gnorton@customerdna.com>
230 * KeventWatcher.cs: Add IDisposable to our kevent struct
231 so the disposer gets called. Fixes a small memory leak. Dont monitor
232 LastAccessedTime for changed files, as this will cause AppUnloading in XSP
233 when global.asax is accessed after creation. Use a case-insensitive IsMatch
234 to deal with OSX Case-aware/Case-insensitive filesystem.
235 * SearchPattern.cs: Add a overload to IsMatch to explicitly set
236 the ignore field for OSX case-aware yet case-insensitive filesystem. This
237 allows monitoring of global.asax to happen properly.
239 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
241 * DefaultWatcher.cs: make it work when the FileMask does not have
242 wildcards and we're watching a directory.
244 2004-11-22 Ben Maurer <bmaurer@ximian.com>
246 * DefaultWatcher.cs: Copy the hashtable when we scan for changes
247 so that you can make modifications in a handler. Fixes 65966.
249 2004-11-19 Geoff Norton <gnorton@customerdna.com>
251 * KeventWatcher.cs: Dont marshal a string to a struct
252 that the kernel will hold; this causes a double free bug. Marshal
253 it as a IntPtr and clean it up in the dispose method. Don't pass
254 FullName to the pattern matcher, pass the filename. Fixes bug #69692.
256 2004-10-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
258 * DefaultWatcher.cs: if the file is removed between reading the
259 directory and filling the file info, catch the exception and ignore the
260 file. Fixes bug #59482.
262 2004-10-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
264 * DefaultWatcher.cs: don't use Directory.GetFileSystemEntries when the
265 pattern has no wildcards. Fixes bug #67447.
267 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
269 * FAMWatcher.cs: s/fam/libfam.so.0/ so that g_module finds it even
270 when the development package is not installed.
272 2004-08-06 Geoff Norton <gnorton@customerdna.com>
274 * FileSystemWatcher.cs: Use the new KeventWatcher if its supported
275 * KeventWatcher.cs: Added to cvs
277 2004-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
279 * DefaultWatcher.cs: fixed subdirectories notifications and don't
280 fail when any directory is removed. Closes bug #59840.
282 2004-05-09 Atsushi Enomoto <atsushi@ximian.com>
284 * FileSystemWatcher.cs : csc build fix. Duplicate name between class
285 field and local variable. (already filed in bugzilla #47991).
287 2004-05-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
290 * FAMWatcher.cs: use MangledFilter instead of Filter.
292 * FileSystemWatcher.cs: added MangledFilter and finalizer.
294 * SearchPattern.cs: fixed the case when the pattern is "*".
296 2004-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
298 * FAMWatcher.cs: support monitoring subdirectories. FAM doesn't do that,
299 so we have to register the existing directories and add the new ones
300 that might be created.
302 * SearchPattern.cs: provide the pattern when it's wrong.
304 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
306 * SearchPattern.cs: small improvement for files with no wildcard.
308 2004-01-27 Nick Drochak <ndrochak@ieee.org>
311 * FileSystemWatcher.cs: Remove unused variables. Eliminates a couple of
314 2004-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
316 * DefaultWatcher.cs: fixed condition for removal from the watches list.
318 2004-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
320 * DefaultWatcher.cs: check if the FileSystemWatcher is in WaitForChange
321 and call Monitor.PulseAll in that case.
323 2004-01-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
325 * DefaultWatcher.cs: implemented.
326 * FAMWatcher.cs: don't stop the thread when we add a new watch.
327 * FileSystemWatcher.cs: on windows we use the default watcher by now.
329 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
331 * DefaultWatcher.cs: stub for the default watcher.
332 * WindowsWatcher.cs: stub for the windows watcher.
334 * FAMWatcher.cs: FAM watcher.
336 * FileAction.cs: enum with event types.
338 * FileSystemEventArgs.cs: added SetName property.
339 * FileSystemWatcher.cs: added support for the 3 watchers.
341 * IFileWatcher.cs: interface implemented by the watchers.
342 * SearchPattern.cs: copied from corlib.
344 2003-07-17 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
346 * FileSystemWatcher.cs: Reworked attributes based on the new Consts
349 2003-07-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
351 * FileSystemWatcher.cs: Added missing attributes
353 2003-07-09 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
355 * IODescriptionAttribute.cs: Removed unneeded field
357 2003-05-16 Dick Porter <dick@ximian.com>
359 * MonoIO.cs: Implement GetTempPath
361 2003-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
363 * FileSystemWatcher.cs: added attributes and some more implementation.
364 Now only the guts left to do.
366 * FileSystemEventArgs.cs:
367 * RenamedEventArgs.cs: implemented a couple of properties.
369 2002-10-31 Dick Porter <dick@ximian.com>
371 * MonoIO.cs: Return the error status in a parameter, as the
372 GetLastError() value has long since been blown away if we try and
373 look it up in a subsequent internal call invocation.
375 2002-09-15 Duncan Mak <duncan@ximian.com>
377 * FileSystemWatcher.cs (FileSystemWatcher): Fixed the null-param
380 2002-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
382 * FileSystemWatcher.cs: IDisposable fixes.
384 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
386 * InternalBufferOverflowException.cs:
388 * WatcherChangeTypes.cs: little fixes based on class status page.
390 2002-08-15 Tim Coleman <tim@timcoleman.com>
392 * ErrorEventHandler.cs:
393 * FileSystemEventArgs.cs:
394 * FileSystemEventHandler.cs:
395 * FileSystemWatcher.cs:
396 * InternalBufferOverflowException.cs:
397 * IODescriptionAttribute.cs:
399 * RenamedEventArgs.cs:
400 * RenamedEventHandler.cs:
401 * WaitForChangedResult.cs:
402 * WatcherChangeTypes.cs:
405 2002-07-20 Dick Porter <dick@ximian.com>
407 * MonoIO.cs: Cut down copy of corlib/System.IO/MonoIO.cs, so it
408 can be used from the System assembly but still not be exposed to