Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.11.0
-
None
-
None
-
windows
Description
Each call to configureAndWatch causes a new FileWatcher object to be created (without deleting the old one) and consequently a new thread to be created (even though the old one may still be running).
It problem may be fixed by creating
std::vector<std::tr1::shared_ptr<FileWatchdog>> vecWatchDog;
change
// XMLWatchdog * xdog = new XMLWatchdog(file);
// xdog->setDelay(delay);
// xdog->start();
std::tr1::shared_ptr<FileWatchdog> xdog((FileWatchdog*)new XMLWatchdog(file));
xdog->setDelay(delay);
xdog->start();
vecWatchDog.push_back(xdog);
and adding
void xml::DOMConfigurator::stopAllWatch()
{
vecWatchDog.clear();
}
for correctly stoped FileWatchers on application exit befor destroing Pool objects. Or need create vecWatchDog on Pool.
Attachments
Issue Links
- is related to
-
LOGCXX-416 FileWatchdog thread crash on exit()
- Resolved
- relates to
-
LOGCXX-342 PropertyConfigurator::configureAndWatch leaks memory and threads
- Resolved