Commit 3ef37ce1 authored by mattijs's avatar mattijs Committed by Andrew Heather
Browse files

BUG: fileMonitor: do not allow used watch also in free watches.

See #1328.
parent fc58d517
......@@ -450,14 +450,16 @@ Foam::fileMonitor::~fileMonitor()
// regIOobject)
Foam::label Foam::fileMonitor::addWatch(const fileName& fName)
{
label watchFd;
if (debug)
{
Pout<< "fileMonitor : adding watch on file " << fName << endl;
}
label sz = freeWatchFds_.size();
label watchFd;
if (sz)
if (freeWatchFds_.size())
{
watchFd = freeWatchFds_[sz-1];
freeWatchFds_.setSize(sz-1);
watchFd = freeWatchFds_.remove();
}
else
{
......@@ -495,7 +497,10 @@ bool Foam::fileMonitor::removeWatch(const label watchFd)
<< watchFile_[watchFd] << endl;
}
freeWatchFds_.append(watchFd);
if (!freeWatchFds_.found(watchFd))
{
freeWatchFds_.append(watchFd);
}
return watcher_->removeWatch(watchFd);
}
......
......@@ -446,14 +446,16 @@ Foam::fileMonitor::~fileMonitor()
// regIOobject)
Foam::label Foam::fileMonitor::addWatch(const fileName& fName)
{
label watchFd;
if (debug)
{
Pout<< "fileMonitor : adding watch on file " << fName << endl;
}
label sz = freeWatchFds_.size();
label watchFd;
if (sz)
if (freeWatchFds_.size())
{
watchFd = freeWatchFds_[sz-1];
freeWatchFds_.setSize(sz-1);
watchFd = freeWatchFds_.remove();
}
else
{
......@@ -491,7 +493,10 @@ bool Foam::fileMonitor::removeWatch(const label watchFd)
<< watchFile_[watchFd] << endl;
}
freeWatchFds_.append(watchFd);
if (!freeWatchFds_.found(watchFd))
{
freeWatchFds_.append(watchFd);
}
return watcher_->removeWatch(watchFd);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment