1. 18 May, 2016 1 commit
    • James Chacon's avatar
      runtime: prevent racefini from being invoked more than once · 733162fd
      James Chacon authored
      racefini calls __tsan_fini which is C code and at the end of it
      invoked the standard C library exit(3) call. This has undefined
      behavior if invoked more than once. Specifically in C++ programs
      it caused static destructors to run twice. At least on glibc
      impls it also means the at_exit handlers list (where those are
      stored) also free's a list entry when it completes these. So invoking
      twice results in a double free at exit which trips debug memory
      allocation tracking.
      
      Fix all of this by using an atomic as a boolean barrier around
      calls to racefini being invoked > 1 time.
      
      Fixes #15578
      
      Change-Id: I49222aa9b8ded77160931f46434c61a8379570fc
      Reviewed-on: https://go-review.googlesource.com/22882Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
      Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      733162fd
  2. 17 May, 2016 6 commits
  3. 16 May, 2016 13 commits
  4. 15 May, 2016 6 commits
  5. 14 May, 2016 8 commits
  6. 13 May, 2016 5 commits
  7. 12 May, 2016 1 commit