Hey Andrii,

2009/8/30 Andrii Arsirii <[email protected]>:
> Hi.
> In my Wt application we have class Application that is derived from
> Wt::WApplication.
> And we perform  some cleanup in ~Application() destructor.
>
> I've noticed that destructor is never called in FCGI mode when I do
> "apachectl restart" (although the sessions really exist).
> On the other hand it's called when I deploy application in wthttp mode and
> stop it using CTRL+C.
>
> I found 2 faulty places:
> 1) Wt::~WApplication() destructor has to be declared virtual if we want the
> derived destructor to be called when we make deletion on a pointer to a base
> class.
> For some reason derived destructor is called on my setup even without
> virtual declaration, but anyway C++ standard says the way I said.
> And this could lead to problems with other OS/compilers if you don't declare
> virtual Wt::~WApplication().

I do not believe this is an actual problem since WApplication inherits
from WObject, which declares a virtual destructor.
This automatically makes the destructor of any derived class virtual.

> 2) Apache restarts process with SIGHUP. And it's not handled by Wt in FCGI
> connector. Therefore we have 1) memory leak, 2) no destructor called - each
> time we make restart.

Thanks, I didn't know that. I have applied your patch to my local tree.

Regards,
koen

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
witty-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to