[ 
https://issues.apache.org/jira/browse/LOGCXX-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13868827#comment-13868827
 ] 

Joseph Southwell commented on LOGCXX-390:
-----------------------------------------

Although, now that I read it, I see that you are allowing multiple watchdogs to 
run at the same time. My fix does not do that. It simply replaces the existing 
watchdog with the new one. 
What is the use case for wanting multiple watch dogs running? If we are going 
to allow that do we need to add some locking around doConfigure? I also note 
your fix will break our c++ 98 compatibility since shared_ptr was not part of 
the standard library at that point. I am not necessarily opposed to that but 
think there should be some discussion first. 

> xml::DOMConfigurator::configureAndWatch leaks memory and threads like 
> LOGCXX-342
> --------------------------------------------------------------------------------
>
>                 Key: LOGCXX-390
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-390
>             Project: Log4cxx
>          Issue Type: Bug
>          Components: Configurator
>    Affects Versions: 0.10.1
>         Environment: windows
>            Reporter: Victor
>            Assignee: Florian Seydoux
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to