1
0
mirror of https://github.com/golang/go synced 2024-11-19 18:44:41 -07:00
go/src
Austin Clements 249b5cc945 runtime: mark gcWork methods nowritebarrierrec
Currently most of these are marked go:nowritebarrier as a hint, but
it's actually important that these not invoke write barriers
recursively. The danger is that some gcWork method would invoke the
write barrier while the gcWork is in an inconsistent state and that
the write barrier would in turn invoke some other gcWork method, which
would crash or permanently corrupt the gcWork. Simply marking the
write barrier itself as go:nowritebarrierrec isn't sufficient to
prevent this if the write barrier doesn't use the outer method.

Thankfully, this doesn't cause any build failures, so we were getting
this right. :)

For #22460.

Change-Id: I35a7292a584200eb35a49507cd3fe359ba2206f6
Reviewed-on: https://go-review.googlesource.com/72554
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
2017-10-29 17:56:12 +00:00
..
archive archive/zip: restrict UTF-8 detection for comment and name fields 2017-10-25 22:16:46 +00:00
bufio
builtin
bytes bytes: add examples of Equal and IndexByte 2017-10-16 03:34:28 +00:00
cmd Revert "cmd/dist: translate /private/var to /var on darwin builders" 2017-10-28 11:53:49 +00:00
compress
container container/ring: add examples for various Ring functions 2017-10-25 13:34:06 +00:00
context
crypto crypto/elliptic: don't unmarshal invalid encoded points 2017-10-15 02:24:19 +00:00
database/sql database/sql: scan into *time.Time without reflection 2017-10-25 19:29:16 +00:00
debug debug/dwarf: clarify StructField.ByteSize doc 2017-10-18 21:45:30 +00:00
encoding encoding/csv: forbid certain Comma and Comment runes 2017-10-25 01:43:46 +00:00
errors
expvar
flag flag: simplify switch-case in isZeroValue 2017-10-17 20:23:14 +00:00
fmt fmt: clarify wording of * flag 2017-10-15 06:03:34 +00:00
go go/types: improved documentation for WriteExpr and ExprString 2017-10-23 18:10:06 +00:00
hash
html
image image/draw, image/color: optimize hot path sqDiff function 2017-10-27 05:47:09 +00:00
index/suffixarray
internal os: add deadline methods for File type 2017-10-25 18:27:06 +00:00
io io: flatten MultiWriter writers 2017-10-25 21:48:50 +00:00
log log: Remove unnecessary else 2017-10-25 05:02:37 +00:00
math math/big: add (*Float).Sqrt 2017-10-26 17:29:27 +00:00
mime mime/multipart: permit empty file name 2017-10-24 20:21:03 +00:00
net net/http: fix minor leak in Header.WriteSubset 2017-10-27 19:33:14 +00:00
os os: add deadline methods for File type 2017-10-25 18:27:06 +00:00
path
plugin cmd/link, plugin: always encode path 2017-10-26 15:08:37 +00:00
reflect reflect: allow Copy to a byte array or byte slice from a string 2017-10-13 02:35:56 +00:00
regexp
runtime runtime: mark gcWork methods nowritebarrierrec 2017-10-29 17:56:12 +00:00
sort sort: split post-Go1.4 code into its own file 2017-10-27 16:01:43 +00:00
strconv unicode: update to Unicode 10.0.0 2017-10-24 12:42:35 +00:00
strings
sync
syscall syscall: document Time{spec,val} methods 2017-10-27 07:18:47 +00:00
testing testing/iotest: fix NewReadLogger documentation typo 2017-10-19 15:59:21 +00:00
text text/template: add break, continue actions in ranges 2017-10-17 02:06:15 +00:00
time
unicode unicode: update to Unicode 10.0.0 2017-10-24 12:42:35 +00:00
unsafe
vendor/golang_org/x vendor/golang_org/x/net/route: refresh from upstream 2017-10-26 20:20:52 +00:00
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash build: move final steps of make.bash, make.bat, make.rc into cmd/dist 2017-10-25 01:13:01 +00:00
make.bat build: move final steps of make.bash, make.bat, make.rc into cmd/dist 2017-10-25 01:13:01 +00:00
Make.dist
make.rc build: move final steps of make.bash, make.bat, make.rc into cmd/dist 2017-10-25 01:13:01 +00:00
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc