1. 01 Jun, 2015 1 commit
    • Austin Clements's avatar
      runtime: document that runtime.GC() blocks until GC is complete · df2809f0
      Austin Clements authored
      runtime.GC() is intentionally very weakly specified. However, it is so
      weakly specified that it's difficult to know that it's being used
      correctly for its one intended use case: to ensure garbage collection
      has run in a test that is garbage-sensitive. In particular, it is
      unclear whether it is synchronous or asynchronous. In the old STW
      collector this was essentially self-evident; short of queuing up a
      garbage collection to run later, it had to be synchronous. However,
      with the concurrent collector, there's evidence that people are
      inferring that it may be asynchronous (e.g., issue #10986), as this is
      both unclear in the documentation and possible in the implementation.
      
      In fact, runtime.GC() runs a fully synchronous STW collection. We
      probably don't want to commit to this exact behavior. But we can
      commit to the essential property that tests rely on: that runtime.GC()
      does not return until the GC has finished.
      
      Change-Id: Ifc3045a505e1898ecdbe32c1f7e80e2e9ffacb5b
      Reviewed-on: https://go-review.googlesource.com/10488Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      df2809f0
  2. 31 May, 2015 2 commits
  3. 30 May, 2015 3 commits
  4. 29 May, 2015 7 commits
  5. 28 May, 2015 14 commits
  6. 27 May, 2015 12 commits
  7. 26 May, 2015 1 commit