diff --git a/src/OSspecific/POSIX/fileMonitor.C b/src/OSspecific/POSIX/fileMonitor.C index a812dec942..adeebbdcb6 100644 --- a/src/OSspecific/POSIX/fileMonitor.C +++ b/src/OSspecific/POSIX/fileMonitor.C @@ -257,24 +257,21 @@ void Foam::fileMonitor::checkFiles() const // << "watchFd:" << inotifyEvent.wd << nl // << "watchName:" << watchFile_[inotifyEvent.wd] << endl; - switch (inotifyEvent.mask) + if (inotifyEvent.mask % IN_DELETE_SELF) { - case IN_DELETE_SELF: - { - Map::iterator iter = - state_.find(label(inotifyEvent.wd)); - iter() = DELETED; - } - break; - - case IN_MODIFY: - case IN_CLOSE_WRITE: - { - Map::iterator iter = - state_.find(label(inotifyEvent.wd)); - iter() = MODIFIED; - } - break; + Map::iterator iter = + state_.find(label(inotifyEvent.wd)); + iter() = DELETED; + } + else if + ( + (inotifyEvent.mask % IN_MODIFY) + || (inotifyEvent.mask % IN_CLOSE_WRITE) + ) + { + Map::iterator iter = + state_.find(label(inotifyEvent.wd)); + iter() = MODIFIED; } } else