Notable changes
- More load tests
- Stop/Shutdown is a lot faster, (especially when monitoring large folders)
- Watcher manager uses only the amount of CPU needed to get new events.
- There would be a crash when renaming a 'root' folder
- The samples were not using log delegates properly
- Logger was not working properly
- Added worker pool to limit the number thread
- Added
Ready()
to interface so we can ask if/when the system is ready to monitor files/folders. - Added basic statistics, (see
IStatistics
), to the directory watcher added eventOnStatisticsAsync
- Number of events
- Number of milliseconds since last statistics
- Added
IRates
interface to allow to control how often events are published. - Added simple logger so messages can be sent to the watcher event
OnLoggerAsync
Unknown
= 0, Should never happenInformation
= 1, nothing important, maybe something worth notingWarning
= 2, something happened, but we managed to recover from itError
= 3, something broke, messages were probably lost.Panic
= 4, something really bad happened, the process probably died.Debug
= 100, Should not happen in release more, only for information
- Added random testing app, (create/delete/etc) files to ensure that events are not lost over time.
- Added load testing app, create multiple watchers and start/stop them over hundreds of events.
- Added strong name signing to included files (
PublicKeyToken=b044eb2621106c1f
)
- Changed the default number of threads from unlimited to a max of 200, (in reality only about 50)
- You can now set the events rate, the default was every 50ms
- When monitoring folders that were deleted we would not remove them and free memory
- The date time of an event was wrong, (like ... a lot).
- Instrumentation, Thanks to The Cherno / Hazel project)
The flag
MYODDWEB_PROFILE
needs to be set to 1. - Version number for unmanaged
myoddweb.directorywatcher
helper. - A whole lot of unit tests.
- Helper is no longer backward compatible! If you are using another app to call the helper you will need to use my sample(s) to reconnect.
- Various code optimisations.
- Various performance / memory fixes
- Some code now running is parallel to speed-up the processing of folders/files that have changed.
- Minor other improvements
- If a callback throws an error ... or misbehaves, it no longer kills the entire process.
- There was a bug in 0.1.6 where multiple (sub)folders watcher are created.
- Trying to fix the loading of embedded files.
- Replaced /MD > /MT to insure smoother loading of embedded files.
- The watcher manager used to write to console on error ... but we might not have a console.
- Removed the no longer needed 'interop' project.
- Support for:
- .NET Core 3.0
- .NET Standard 2.0
- .NET 4.6.2
- There was a possibility for
Stop()/Start()
to hang if called at the wrong time.
- Small changes/fixes picked up during testing and development of Myoddweb Desktopsearch.
- Added a couple of interfaces
IFileSystemEvent.Is( ... )
IFileSystemEvent.FullName
IFileSystemEvent.Name
- Better managing of Directories/Files being updated
- Added Google test
- General clean up
- Initial release