1. 01 Mar, 2011 1 commit
  2. 28 Feb, 2011 7 commits
  3. 26 Feb, 2011 1 commit
    • Nigel Tao's avatar
      compress/lzw: don't use a closure in NewReader, which avoids having · fdbbb066
      Nigel Tao authored
      to move some variables from the stack to the heap.
      
      Sorted benchmark runs on my 2007-era Mac Mini (GOARCH=amd64, GOOS=linux):
      
      Before:
      lzw.BenchmarkDecoder        2000        878176 ns/op
      lzw.BenchmarkDecoder        2000        878415 ns/op
      lzw.BenchmarkDecoder        2000        880352 ns/op
      lzw.BenchmarkDecoder        2000        898445 ns/op
      lzw.BenchmarkDecoder        2000        901728 ns/op
      
      After:
      lzw.BenchmarkDecoder        2000        859065 ns/op
      lzw.BenchmarkDecoder        2000        859402 ns/op
      lzw.BenchmarkDecoder        2000        860035 ns/op
      lzw.BenchmarkDecoder        2000        860555 ns/op
      lzw.BenchmarkDecoder        2000        861109 ns/op
      
      The ratio of before/after median times is 1.024.
      
      The runtime.MemStats.Mallocs delta per loop drops from 109 to 104.
      
      R=r, r2, dfc
      CC=golang-dev
      https://golang.org/cl/4253043
      fdbbb066
  4. 25 Feb, 2011 17 commits
  5. 24 Feb, 2011 10 commits
  6. 23 Feb, 2011 4 commits
    • Alex Brainman's avatar
      net: *netFD.Read to return os.EOF on eof (fixes windows build) · 162d510d
      Alex Brainman authored
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/4210041
      162d510d
    • Brad Fitzpatrick's avatar
      http: set method GET on Get() requests · c7978584
      Brad Fitzpatrick authored
      R=adg, bradfitzwork
      CC=golang-dev
      https://golang.org/cl/4229042
      c7978584
    • Russ Cox's avatar
      build: remove _gcc_main.c during make clean · 8b8d5e9e
      Russ Cox authored
      R=r, r2
      CC=golang-dev
      https://golang.org/cl/4226043
      8b8d5e9e
    • Russ Cox's avatar
      runtime: always run stackalloc on scheduler stack · b5dfac45
      Russ Cox authored
      Avoids deadlocks like the one below, in which a stack split happened
      in order to call lock(&stacks), but then the stack unsplit cannot run
      because stacks is now locked.
      
      The only code calling stackalloc that wasn't on a scheduler
      stack already was malg, which creates a new goroutine.
      
      runtime.futex+0x23 /home/rsc/g/go/src/pkg/runtime/linux/amd64/sys.s:139
             runtime.futex()
      futexsleep+0x50 /home/rsc/g/go/src/pkg/runtime/linux/thread.c:51
             futexsleep(0x5b0188, 0x300000003, 0x100020000, 0x4159e2)
      futexlock+0x85 /home/rsc/g/go/src/pkg/runtime/linux/thread.c:119
             futexlock(0x5b0188, 0x5b0188)
      runtime.lock+0x56 /home/rsc/g/go/src/pkg/runtime/linux/thread.c:158
             runtime.lock(0x5b0188, 0x7f0d27b4a000)
      runtime.stackfree+0x4d /home/rsc/g/go/src/pkg/runtime/malloc.goc:336
             runtime.stackfree(0x7f0d27b4a000, 0x1000, 0x8, 0x7fff37e1e218)
      runtime.oldstack+0xa6 /home/rsc/g/go/src/pkg/runtime/proc.c:705
             runtime.oldstack()
      runtime.lessstack+0x22 /home/rsc/g/go/src/pkg/runtime/amd64/asm.s:224
             runtime.lessstack()
      ----- lessstack called from goroutine 2 -----
      runtime.lock+0x56 /home/rsc/g/go/src/pkg/runtime/linux/thread.c:158
             runtime.lock(0x5b0188, 0x40a5e2)
      runtime.stackalloc+0x55 /home/rsc/g/go/src/pkg/runtime/malloc.c:316
             runtime.stackalloc(0x1000, 0x4055b0)
      runtime.malg+0x3d /home/rsc/g/go/src/pkg/runtime/proc.c:803
             runtime.malg(0x1000, 0x40add9)
      runtime.newproc1+0x12b /home/rsc/g/go/src/pkg/runtime/proc.c:854
             runtime.newproc1(0xf840027440, 0x7f0d27b49230, 0x0, 0x49f238, 0x40, ...)
      runtime.newproc+0x2f /home/rsc/g/go/src/pkg/runtime/proc.c:831
             runtime.newproc(0x0, 0xf840027440, 0xf800000010, 0x44b059)
      ...
      
      R=r, r2
      CC=golang-dev
      https://golang.org/cl/4216045
      b5dfac45