diff --git a/doc/changes/inotify.txt b/doc/changes/inotify.txt index 85a5aa4349fe802bc5bb0ac373e21e6c70d672ad..146dc55a05a0bd4a35a5398a88856552d0030b8d 100644 --- a/doc/changes/inotify.txt +++ b/doc/changes/inotify.txt @@ -1,7 +1,5 @@ 2010-05-28 - -Using asynchronous file modification (using inotify) instead of timestamp -checking. +Cleanup of automatic regIOobject rereading. - all files (usually only IOdictionary) that need to be monitored should be registered using MUST_READ_IF_MODIFIED. The MUST_READ should @@ -11,7 +9,19 @@ files. I've temporarily added a warning in IOdictionary if constructed with MUST_READ. Same for IOList,IOField,IOMap if constructed with MUST_READ_IF_MODIFIED (or is rereading supported?). Please let me know if something does not work or -you see this warning. +you see the warning + "Dictionary constructed with IOobject::MUST_READ instead of IOobject::MUST_READ_IF_MODIFIED." << nl + + +- any monitored and modified file will get reloaded from the exact path +that was monitored. In the old system it would/could do a re-search through all +times. + + +- all reductions to synchronise status on different processors are done with +a single reduction instead of one reduction per registered object. This could +be quite a gain on large numbers of processors. + - all file monitoring is done by an instance of 'fileMonitor' in the Time class. The fileMonitor class can be found in OSspecific. Default is @@ -19,26 +29,25 @@ to use the (linux-specific) 'inotify' system calls. If compiled with -DFOAM_USE_STAT it will revert to the current 'stat' system calls. + - inotify does not need timestamps. There is no need for fileModificationSkew to allow for time differences. (there can still temporarily be a difference in modified status between different processors due to nfs lagging) -- all reductions to synchronise status on different processors are done with -a single reduction instead of one reduction per registered object. This could -be quite a gain on large numbers of processors. - fileMonitor stores two hashtables per file so there is a small overhead adding and removing files from monitoring. + - if runTimeModifiable is false at start of run no files will get monitored, -however if runTimeModified gets set to false during the run and monitored files +however if runTimeModified gets set to false during the run the files will still get monitored (though never reloaded). This is only a hypothetical problem in that the kernel still stores events for the monitored files. However inotify is very efficient - e.g. it gets used to track changes on file systems for desktop search engines. -- any monitored and modified file will get reloaded from the exact path -that was monitored. In the old system it would/could do a re-search through all -times. - +- in the old system one could call modified() on any object and get +and uptodate state. In the new system it will return the state from +the last runTime++ (which if it triggered any re-reads will have reset the +state anyway).