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

Dominik Psenner commented on LOG4NET-447:
-----------------------------------------

Hi there,

thanks for sharing your contribution. I've looked into the diff and it is 
straight forward and looks good. Two things that I would like to be 
discussed/changed before I will apply the patch:

Marking the other methods as obsolete is probably not a wise decision since 
people might still want to get events without clearing them or clear events 
without wasting memory to get them. In general, the memory appender was not 
invented to be a threadsafe FIFO queue. This said, is there a special reason 
why you did not create a new class that extends the MemoryAppender and adds 
your functionality?

Cheers

> MemoryAppender class is not thread safe
> ---------------------------------------
>
>                 Key: LOG4NET-447
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-447
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 1.2.13
>         Environment: .NET Framework 4.0 (Full Profile)
>            Reporter: Gregory Babski
>            Priority: Minor
>         Attachments: MemoryAppenderTest.cs, MemoryAppender_ThreadSafety.diff
>
>
> The memory appender cannot be used safely in an application that uses more 
> than one thread to interact with logging.
> When using this code to retrieve and then clear events logged in the memory 
> appender:
> var events = memoryAppender.GetEvents();
> memoryAppender.Clear();
> The executing thread may be preempted between these two calls and additional 
> logging events logged. These events are then cleared when the thread resumes 
> execution - and are never seen/processed.
> I expect to be be able to retrieve and clear the list of current events in 
> one call that guarantees that no events are ever lost.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to