This test creates one of the following threading issues:
This test creates one of the following threading issues:

BufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:
BufferedLogger::AlreadyStartedError: already started
    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:29:in `start'
    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'
    test/buffered_logger_test.rb:35:in `times'
    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'

BufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:
BufferedLogger::NotStartedError: not started
    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:18:in `end'
    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36:in `start'
    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'
    test/buffered_logger_test.rb:35:in `times'
    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'

BufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:
NoMethodError: undefined method `string' for nil:NilClass
    /Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15:in `end'
    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:19:in `end'
    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36:in `start'
    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'
    test/buffered_logger_test.rb:35:in `times'
    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'

Or just segfaults Ruby MRI :(

/Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15: [BUG] Segmentation fault at 0x007f8f44100000
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-darwin14.0]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.

-- Control frame information -----------------------------------------------
c:0008 p:---- s:0025 e:000024 CFUNC  :delete
c:0007 p:0015 s:0021 e:000019 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15
c:0006 p:0029 s:0017 e:000016 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger.rb:19
c:0005 p:0048 s:0014 e:000012 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36
c:0004 p:0009 s:0009 E:001e68 BLOCK  test/buffered_logger_test.rb:36 [FINISH]
c:0003 p:---- s:0007 e:000006 CFUNC  :times
c:0002 p:0010 s:0004 E:002128 BLOCK  test/buffered_logger_test.rb:35 [FINISH]
c:0001 p:---- s:0002 e:000001 TOP    [FINISH]

test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'
test/buffered_logger_test.rb:35:in `times'

samuelkadolph/buffered-logger,sunblaze/buffered-logger