1. 15 Mar, 2013 6 commits
  2. 14 Mar, 2013 21 commits
    • Brad Fitzpatrick's avatar
      database/sql: associate a mutex with each driver interface · f28c8fba
      Brad Fitzpatrick authored
      The database/sql/driver docs make this promise:
      
         "Conn is a connection to a database. It is not used
         concurrently by multiple goroutines."
      
      That promises exists as part of database/sql's overall
      goal of making drivers relatively easy to write.
      
      So far this promise has been kept without the use of locks by
      being careful in the database/sql package, but sometimes too
      careful. (cf. golang.org/issue/3857)
      
      The CL associates a Mutex with each driver.Conn, and with the
      interface value progeny thereof. (e.g. each driver.Tx,
      driver.Stmt, driver.Rows, driver.Result, etc) Then whenever
      those interface values are used, the Locker is locked.
      
      This CL should be a no-op (aside from some new Lock/Unlock
      pairs) and doesn't attempt to fix Issue 3857 or Issue 4459,
      but should make it much easier in a subsequent CL.
      
      Update #3857
      
      R=golang-dev, adg
      CC=golang-dev
      https://golang.org/cl/7803043
      f28c8fba
    • Russ Cox's avatar
      runtime: fix netbsd after reorg (again) · eb80431b
      Russ Cox authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7719046
      eb80431b
    • Russ Cox's avatar
      runtime: fix netbsd again after reorg · 214c1784
      Russ Cox authored
      This time for sure.
      That C file sure looked like a header file to me. :-)
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7830043
      214c1784
    • Russ Cox's avatar
      runtime: fix build for freebsd/arm after reorg · c89fc124
      Russ Cox authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7701046
      c89fc124
    • Russ Cox's avatar
      runtime: fix freebsd arm for hash change · a98bec45
      Russ Cox authored
      Was missing definitions of open, read, close.
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7828043
      a98bec45
    • Russ Cox's avatar
      runtime: freebsd, netbsd build fixes after reorg · 45ebc064
      Russ Cox authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7826044
      45ebc064
    • Brad Fitzpatrick's avatar
      database/sql: document non-open of Open; add Ping · a4a86514
      Brad Fitzpatrick authored
      Fixes #4804
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7819043
      a4a86514
    • Russ Cox's avatar
      runtime, net: fix arm build · cf46e561
      Russ Cox authored
      Bring net/fd_linux.go back (it was deleted this morning)
      because it is still needed for ARM.
      
      Fix a few typos in the runtime reorg.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7759046
      cf46e561
    • Russ Cox's avatar
      cmd/ld: another use-after-free · 8bbb6d3e
      Russ Cox authored
      This only shows up in the duplicate symbol error message.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7486053
      8bbb6d3e
    • Russ Cox's avatar
      runtime: refactor os-specific code · e9d62a6d
      Russ Cox authored
      thread_GOOS.c becomes os_GOOS.c.
      
      signal_GOOS_GOARCH.c becomes os_GOOS_GOARCH.c,
      but with non-GOARCH-specific code moved into os_GOOS.c.
      
      The actual arch-specific signal handler moves into signal_GOARCH.c
      to avoid per-GOOS duplication.
      
      New files signal_GOOS_GOARCH.h provide macros for
      accessing fields of the very system-specific signal info structs.
      
      Lots moving, but nothing changing.
      This is a preliminarly cleanup so I can work on the signal
      handling code to fix some open issues without having to
      make each change 13 times.
      
      Tested on Linux and OS X, 386 and amd64.
      Will fix Plan 9, Windows, and ARM after the fact if necessary.
      (Plan 9 and Windows should be fine; ARM will probably have some typos.)
      
      Net effect: -1081 lines of code.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7565048
      e9d62a6d
    • Albert Strasheim's avatar
      net: deflake TestDialTimeout · cdc64245
      Albert Strasheim authored
      Fixes #3867.
      Fixes #3307.
      
      R=bradfitz, dvyukov
      CC=golang-dev
      https://golang.org/cl/7735044
      cdc64245
    • Dmitriy Vyukov's avatar
      runtime: do not memprofile settype_flush · 76959e2c
      Dmitriy Vyukov authored
      Fixes #4850.
      
      R=golang-dev, bradfitz, rsc
      CC=golang-dev
      https://golang.org/cl/7745044
      76959e2c
    • Dmitriy Vyukov's avatar
      runtime: integrated network poller for linux · 49e03008
      Dmitriy Vyukov authored
      vs tip:
      BenchmarkTCP4OneShot                    172994        40485  -76.60%
      BenchmarkTCP4OneShot-2                   96581        30028  -68.91%
      BenchmarkTCP4OneShot-4                   52615        18454  -64.93%
      BenchmarkTCP4OneShot-8                   26351        12289  -53.36%
      BenchmarkTCP4OneShot-16                  12258        16093  +31.29%
      BenchmarkTCP4OneShot-32                  13200        17045  +29.13%
      
      BenchmarkTCP4OneShotTimeout             124814        42932  -65.60%
      BenchmarkTCP4OneShotTimeout-2            99090        29040  -70.69%
      BenchmarkTCP4OneShotTimeout-4            51860        18455  -64.41%
      BenchmarkTCP4OneShotTimeout-8            26100        12073  -53.74%
      BenchmarkTCP4OneShotTimeout-16           12198        16654  +36.53%
      BenchmarkTCP4OneShotTimeout-32           13438        17143  +27.57%
      
      BenchmarkTCP4Persistent                 115647         7782  -93.27%
      BenchmarkTCP4Persistent-2                58024         4808  -91.71%
      BenchmarkTCP4Persistent-4                24715         3674  -85.13%
      BenchmarkTCP4Persistent-8                16431         2407  -85.35%
      BenchmarkTCP4Persistent-16                2336         1875  -19.73%
      BenchmarkTCP4Persistent-32                1689         1637   -3.08%
      
      BenchmarkTCP4PersistentTimeout           79754         7859  -90.15%
      BenchmarkTCP4PersistentTimeout-2         57708         5952  -89.69%
      BenchmarkTCP4PersistentTimeout-4         26907         3823  -85.79%
      BenchmarkTCP4PersistentTimeout-8         15036         2567  -82.93%
      BenchmarkTCP4PersistentTimeout-16         2507         1903  -24.09%
      BenchmarkTCP4PersistentTimeout-32         1717         1627   -5.24%
      
      vs old scheduler:
      benchmark                           old ns/op    new ns/op    delta
      BenchmarkTCPOneShot                    192244        40485  -78.94%
      BenchmarkTCPOneShot-2                   63835        30028  -52.96%
      BenchmarkTCPOneShot-4                   35443        18454  -47.93%
      BenchmarkTCPOneShot-8                   22140        12289  -44.49%
      BenchmarkTCPOneShot-16                  16930        16093   -4.94%
      BenchmarkTCPOneShot-32                  16719        17045   +1.95%
      
      BenchmarkTCPOneShotTimeout             190495        42932  -77.46%
      BenchmarkTCPOneShotTimeout-2            64828        29040  -55.20%
      BenchmarkTCPOneShotTimeout-4            34591        18455  -46.65%
      BenchmarkTCPOneShotTimeout-8            21989        12073  -45.10%
      BenchmarkTCPOneShotTimeout-16           16848        16654   -1.15%
      BenchmarkTCPOneShotTimeout-32           16796        17143   +2.07%
      
      BenchmarkTCPPersistent                  81670         7782  -90.47%
      BenchmarkTCPPersistent-2                26598         4808  -81.92%
      BenchmarkTCPPersistent-4                15633         3674  -76.50%
      BenchmarkTCPPersistent-8                18093         2407  -86.70%
      BenchmarkTCPPersistent-16               17472         1875  -89.27%
      BenchmarkTCPPersistent-32                7679         1637  -78.68%
      
      BenchmarkTCPPersistentTimeout           83186         7859  -90.55%
      BenchmarkTCPPersistentTimeout-2         26883         5952  -77.86%
      BenchmarkTCPPersistentTimeout-4         15776         3823  -75.77%
      BenchmarkTCPPersistentTimeout-8         18180         2567  -85.88%
      BenchmarkTCPPersistentTimeout-16        17454         1903  -89.10%
      BenchmarkTCPPersistentTimeout-32         7798         1627  -79.14%
      
      R=golang-dev, iant, bradfitz, dave, rsc
      CC=golang-dev
      https://golang.org/cl/7579044
      49e03008
    • Dmitriy Vyukov's avatar
      cmd/dist: support goos,goarch build tags · 4dd1b899
      Dmitriy Vyukov authored
      This is necessary to submit netpoll for linux,386 linux,amd64
      
      R=golang-dev, bradfitz, rsc
      CC=golang-dev
      https://golang.org/cl/7470050
      4dd1b899
    • Russ Cox's avatar
      runtime: make panic possible before malloc is ready · f84d5dd4
      Russ Cox authored
      Otherwise startup problems can be difficult to debug.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7522046
      f84d5dd4
    • Dmitriy Vyukov's avatar
      runtime: revert UseSpanType back to 1 · 5b79aa82
      Dmitriy Vyukov authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7812043
      5b79aa82
    • Dmitriy Vyukov's avatar
      runtime: fix build · f51ec007
      Dmitriy Vyukov authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7529049
      f51ec007
    • Dmitriy Vyukov's avatar
      runtime: integrated network poller for darwin · 0bee99ab
      Dmitriy Vyukov authored
      vs tip:
      benchmark                           old ns/op    new ns/op    delta
      BenchmarkTCP4Persistent                 67786        33175  -51.06%
      BenchmarkTCP4Persistent-2               49085        31227  -36.38%
      BenchmarkTCP4PersistentTimeout          69265        32565  -52.98%
      BenchmarkTCP4PersistentTimeout-2        49217        32588  -33.79%
      
      vs old scheduler:
      benchmark                           old ns/op    new ns/op    delta
      BenchmarkTCP4Persistent                 63517        33175  -47.77%
      BenchmarkTCP4Persistent-2               54760        31227  -42.97%
      BenchmarkTCP4PersistentTimeout          63234        32565  -48.50%
      BenchmarkTCP4PersistentTimeout-2        56956        32588  -42.78%
      
      R=golang-dev, bradfitz, devon.odell, mikioh.mikioh, iant, rsc
      CC=golang-dev, pabuhr
      https://golang.org/cl/7569043
      0bee99ab
    • Dmitriy Vyukov's avatar
      net: prepare connect() for new network poller · a11d7d4e
      Dmitriy Vyukov authored
      The problem is that new network poller can have spurious
      rediness notifications. This implementation ensures that
      the socket is actually connected.
      
      R=golang-dev, rsc, akumar
      CC=golang-dev
      https://golang.org/cl/7785043
      a11d7d4e
    • Russ Cox's avatar
      cmd/go: allow ~ in middle of path, just not at beginning · ffbcd89f
      Russ Cox authored
      An earlier CL disallowed ~ anywhere in GOPATH, to avoid
      problems with GOPATH='~/home' instead of GOPATH=~/home.
      But ~ is only special in the shell at the beginning of each of
      the paths in the list, and some paths do have ~ in the middle.
      So relax the requirement slightly.
      
      Fixes #4140.
      
      R=golang-dev, dsymonds
      CC=golang-dev
      https://golang.org/cl/7799045
      ffbcd89f
    • Olivier Saingre's avatar
      encoding/xml: rewrite invalid code points to U+FFFD in Marshal, Escape · f74eb6db
      Olivier Saingre authored
      Fixes #4235.
      
      R=rsc, dave, r, dr.volker.dobler
      CC=golang-dev
      https://golang.org/cl/7438051
      f74eb6db
  3. 13 Mar, 2013 13 commits