go/src/pkg
Russ Cox 551ada4742 runtime: avoid allocation of internal panic values
If a fault happens in malloc, inevitably the next thing that happens
is a deadlock trying to allocate the panic value that says the fault
happened. Stop doing that, two ways.

First, reject panic in malloc just as we reject panic in garbage collection.

Second, runtime.panicstring was using an error implementation
backed by a Go string, so the interface held an allocated *string.
Since the actual errors are C strings, define a new error
implementation backed by a C char*, which needs no indirection
and therefore no allocation.

This second fix will avoid allocation for errors like nil panic derefs
or division by zero, so it is worth doing even though the first fix
should take care of faults during malloc.

Update #6419

R=golang-dev, dvyukov, dave
CC=golang-dev
https://golang.org/cl/13774043
2013-09-20 15:15:25 -04:00
..
archive archive/tar: fix a case where USTAR-split is not working correctly. 2013-09-06 16:49:38 -04:00
bufio bufio: add Writer example 2013-08-12 13:03:50 +10:00
builtin builtin: document print and println 2013-07-09 16:20:19 -07:00
bytes bytes: additional test coverage 2013-09-11 21:20:15 +10:00
compress compress/flate: small documentation fix 2013-09-09 09:37:05 +10:00
container container/list: unexpected panic if Next/Prev called outside of list. 2013-09-09 15:41:36 -07:00
crypto crypto/x509: update comment on system root cert locations. 2013-09-20 15:49:26 +10:00
database/sql database/sql: add SetMaxOpenConns 2013-08-30 09:27:33 -07:00
debug runtime: convert .s textflags from numbers to symbolic constants. 2013-08-07 12:20:05 -07:00
encoding encoding/xml: remove dead code 2013-09-17 15:24:40 -07:00
errors
expvar
flag flag: export commandLine, the previously internal default FlagSet 2013-08-08 11:50:58 +10:00
fmt fmt: %b for complex64 and complex128 2013-09-15 10:45:36 +10:00
go go/build: add ctxt.MatchFile 2013-09-15 11:29:47 -04:00
hash all: change textflags from numbers to symbols. 2013-08-12 10:25:36 -07:00
html text/template/parse, html/template: copy Tree.text during html template clone 2013-09-17 14:19:44 +10:00
image image/color/palette: move Plan9Palette and WebSafePalette out of the 2013-08-30 16:03:16 +10:00
index/suffixarray
io io: prevent write to PipeWriter after Close 2013-08-13 11:04:09 -07:00
log syslog: fix data race on 'crashy' in test function 2013-09-09 16:17:59 -04:00
math math/big: fix nil bug in GobEncode 2013-08-19 11:22:09 +10:00
mime all: dragonfly support 2013-08-24 02:22:52 +10:00
net net/http/cgi: use 'https://' for urls if HTTPS is set. 2013-09-18 10:48:28 +10:00
os os/exec: add more caveats to StdoutPipe, StderrPipe 2013-09-13 15:43:54 -04:00
path path/filepath: fix race with other tests 2013-09-09 16:42:18 -04:00
reflect reflect: test method calls on pointers to pointers 2013-09-17 15:22:42 -07:00
regexp regexp/syntax: optimize EmptyOpContext 2013-08-29 14:31:10 -07:00
runtime runtime: avoid allocation of internal panic values 2013-09-20 15:15:25 -04:00
sort sort: move example to package level and simplify further 2013-09-16 13:02:01 +10:00
strconv all: protect alloc count tests by -testing.short 2013-08-21 14:00:45 +10:00
strings bytes, strings: use copy in Repeat 2013-08-27 09:21:08 +10:00
sync sync: improve once.Do documentation readability 2013-08-28 12:53:59 +10:00
syscall runtime, syscall: work around FreeBSD/amd64 kernel bug 2013-09-16 14:04:32 -04:00
testing testing: don't start timing a Parallel test until it's actually starting 2013-08-19 10:15:30 +10:00
text text/template/parse, html/template: copy Tree.text during html template clone 2013-09-17 14:19:44 +10:00
time time: allow more time for TestOverflowRuntimeTimer to succeed 2013-09-09 15:50:11 +10:00
unicode undo CL 12486043 / ab644299d124 2013-08-05 16:27:24 -07:00
unsafe