Ah. I didn't think that through. You are correct. 

Sent from my iPhone

> On 2016/02/27, at 6:23, Matt Sicker <boa...@gmail.com> wrote:
> 
> If you iterate by index instead of through an iterator, I don't think you get 
> the copy-on-write semantics.
> 
>> On 26 February 2016 at 09:02, Matt Sicker <boa...@gmail.com> wrote:
>> In that case, the only thing that sounds like it might be useful would be 
>> updating StatusLogger (unless the GC-free path requires disabling log4j's 
>> logging).
>> 
>>> On 25 February 2016 at 16:56, Remko Popma <remko.po...@gmail.com> wrote:
>>> If it's a CopyOnWriteArray*List* we can iterate by index, instead of the 
>>> for-each loop style. However, it may be good to focus on steady state 
>>> application logging. For things only used during initialization there may 
>>> not be much benefit. The test to detect memory allocation would be really 
>>> useful, but I haven't had time to look at this. (If anyone wants to work on 
>>> that that'd be great.)
>>> 
>>> One thing: currently StatusLogger creates special ParameterizedMessages 
>>> without a reference to the original parameters to prevent memory leaks. Now 
>>> that the formatting logic is separated out to ParameterFormatter, that can 
>>> be optimized to an ObjectMessage (holding a StringBuilder?). The 
>>> specialized ParameterizedMessage subclass can then be removed which is a 
>>> nice simplification. 
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 2016/02/26, at 5:46, Matt Sicker <boa...@gmail.com> wrote:
>>>> 
>>>> * StatusLogger (StatusListener list)
>>>> * LoggerContext (PropertyChangeListener list)
>>>> * AbstractConfiguration (ConfigurationListener list)
>>>> * PluginManager (String list of packages to scan)
>>>> * DefaultShutdownCallbackRegistry (Cancellable list)
>>>> * And some irrelevant usages in log4j-perf (they're intentionally using 
>>>> CopyOnWriteArrayList/Set)
>>>> 
>>>>> On 25 February 2016 at 14:18, Ralph Goers <ralph.go...@dslextreme.com> 
>>>>> wrote:
>>>>> Do you have a list?
>>>>> 
>>>>> Ralph
>>>>> 
>>>>>> On Feb 25, 2016, at 1:07 PM, Matt Sicker <boa...@gmail.com> wrote:
>>>>>> 
>>>>>> So far I've found a couple places we use a CopyOnWriteArrayList for 
>>>>>> listeners in StatusLogger and core.LoggerContext. I could refactor these 
>>>>>> usages to use a custom set-like class like we use for the 
>>>>>> AppenderControl set, but I don't know if it's worth it.
>>>>>> 
>>>>>> -- 
>>>>>> Matt Sicker <boa...@gmail.com>
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Matt Sicker <boa...@gmail.com>
>> 
>> 
>> 
>> -- 
>> Matt Sicker <boa...@gmail.com>
> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>

Reply via email to