logging-log4cxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Balaji Babu <babu....@gmail.com>
Subject Re: Caching LoggerPtr using local statics (the singleton pattern)
Date Fri, 17 May 2013 06:21:24 GMT
Assaf Lavie <assaflavie <at> gmail.com> writes:

> I'm afraid this didn't help. Still crashes upon exit.Is caching the raw 
pointer instead of a smart-pointer a better solution?On Tue, May 26, 2009 at 
4:20 PM, Curt Arnold <carnold <at> apache.org> wrote:Try using the one 
parameter constructor for LoggerPtr, instead of the default constructor and 
then an assignment:
>   static LoggerPtr 
> There is a slight difference in order of events between the two.  Using 
the default constructor, it is
> 1. Construct singleton
> 2. Call LogManager::getLogger()
>     2a. initialize APR, etc
> 3. Assign logger to singleton
> With the one parameter it is
> 1 Call LogManager::getLogger()
>    1a initialize APR
> 3. Construct singleton
> Since destruction events occur in reverse order, using the one-parameter 
constructor results in APR being destroyed last.
> On May 26, 2009, at 3:37 AM, Assaf Lavie wrote:
> My program always crashes when I try to cache the LoggerPtr returned from 
getLogger in a local static variable (i.e. singleton) like this:
> LoggerPtr MyLogger()
> {
>   static LoggerPtr singleton = 
>   return singleton;
> }
> I assume this happens because of some APR related effect. Can someone 
please shed light on this? Does this happen to you?

Hello Assaf Lavie,
May I know whether you got the solution for this issue. Me too facing the 
same kind of issue in my application. The application is crashing at exit by 
pointing the apr_thread_mutex_destroy. It would be great help if I get the 
solution to resolve this issue.

Thanks in advance.

View raw message