Thank you very much for taking the time to answer my (newbie) question :-)

Another question about the logger.ex: shouldn't add_backend and 
remove_backend(line 420 and 440) call the flush/1 method instead of 
GenEvent.which_handlers(:error_logger)

diff --git a/lib/logger/lib/logger.ex b/lib/logger/lib/logger.ex
index 0ef5ede..4feddb9 100644
--- a/lib/logger/lib/logger.ex
+++ b/lib/logger/lib/logger.ex
@@ -417,7 +417,7 @@ defmodule Logger do

   """
   def add_backend(backend, opts \\ []) do
-    _ = if opts[:flush], do: GenEvent.which_handlers(:error_logger)
+    _ = if opts[:flush], do: flush()
     case Logger.Watcher.watch(Logger, 
Logger.Config.translate_backend(backend), backend) do
       {:ok, _} = ok ->
         Logger.Config.add_backend(backend)
@@ -437,7 +437,7 @@ defmodule Logger do
       the backend is removed
   """
   def remove_backend(backend, opts \\ []) do
-    _ = if opts[:flush], do: GenEvent.which_handlers(:error_logger)
+    _ = if opts[:flush], do: flush()
     Logger.Config.remove_backend(backend)
     Logger.Watcher.unwatch(Logger, 
Logger.Config.translate_backend(backend))
   end


According to the docs both Logger and Erlang's error_logger message will be 
flushed if opts[:flush]. And if I understand the code correctly only 
error_logger messages will be flushed.

/Johan

Den torsdag 2 juni 2016 kl. 22:57:03 UTC+2 skrev José Valim:
>
> The "_ =" is just to signal that the function returns something (in this 
> case handlers) but we are not interested in the result. It does not change 
> the code in any possible way. If the test fails, that's a race condition in 
> the suite and should not be related to your code change.
>
>
>
> *José Valim*
> www.plataformatec.com.br
> Skype: jv.ptec
> Founder and Director of R&D
>
> On Thu, Jun 2, 2016 at 10:48 PM, <[email protected] <javascript:>> 
> wrote:
>
>> This could me my bad: the test failure only occurs sometimes. I guess my 
>> computer is to slow :-)
>>
>> Den torsdag 2 juni 2016 kl. 22:15:39 UTC+2 skrev [email protected]:
>>>
>>> OK, so I figured out that "_=" actually has effect because if I remove 
>>> _= from line 205 in logger.ex the tests fails.
>>>
>>> $ git diff
>>> diff --git a/lib/logger/lib/logger.ex b/lib/logger/lib/logger.ex
>>> index 0ef5ede..644ffcb 100644
>>> --- a/lib/logger/lib/logger.ex
>>> +++ b/lib/logger/lib/logger.ex
>>> @@ -402,7 +402,7 @@ defmodule Logger do
>>>    """
>>>    @spec flush :: :ok
>>>    def flush do
>>> -    _ = GenEvent.which_handlers(:error_logger)
>>> +    GenEvent.which_handlers(:error_logger)
>>>      GenEvent.sync_notify(Logger, :flush)
>>>    end
>>>
>>> $ make clean test
>>> ......
>>>
>>>   1) test drop/2 with negative count stream entries (StreamTest)
>>>      test/elixir/stream_test.exs:202
>>>      No message matching {:stream, 1} after 100ms.
>>>      The process mailbox is empty.
>>>      stacktrace:
>>>        test/elixir/stream_test.exs:215: (test)
>>>
>>>
>>> Can someone please help me understand?
>>>
>>>
>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "elixir-lang-talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-talk/3c1f5f6b-cfdc-440d-bbe8-a061660c6622%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elixir-lang-talk/3c1f5f6b-cfdc-440d-bbe8-a061660c6622%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-talk/0a2cb29e-35a2-48d9-9f09-2cb25b428d8d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to