1
0
mirror of https://github.com/golang/go synced 2024-10-04 06:21:23 -06:00
go/src
Keith Randall 873aaa59b7 reflect: Remove imprecise techniques from channel/select operations.
Reflect used to communicate to the runtime using interface words,
which is bad for precise GC because sometimes iwords hold a pointer
and sometimes they don't.  This change rewrites channel and select
operations to always pass pointers to the runtime.

reflect.Select gets somewhat more expensive, as we now do an allocation
per receive case instead of one allocation whose size is the max of
all the received types.  This seems unavoidable to get preciseness
(unless we move the allocation into selectgo, which is a much bigger
change).

Fixes #6490

R=golang-codereviews, dvyukov, rsc
CC=golang-codereviews
https://golang.org/cl/52900043
2014-01-16 13:35:29 -08:00
..
cmd cmd/gc: handle non-escaping address-taken variables better 2014-01-16 10:32:30 -05:00
lib9 lib9, libmach, cmd/dist, go/build: add support for GOOS=solaris 2014-01-07 23:12:12 +11:00
libbio build: do not use the host's libbio on Plan 9 2013-12-09 18:39:58 -05:00
liblink liblink: fix comments. Someone was overzealous with search & replace. 2014-01-09 19:46:46 -08:00
libmach libmach: use different names for different Ureg types 2014-01-08 20:37:27 -05:00
pkg reflect: Remove imprecise techniques from channel/select operations. 2014-01-16 13:35:29 -08:00
all.bash
all.bat
all.rc
clean.bash
clean.bat
clean.rc
make.bash cmd/dist, build: support building statically linked toolchain 2013-10-01 23:44:20 -04:00
make.bat cmd/dist: fix windows build. 2013-08-02 14:29:04 -07:00
Make.dist
make.rc build: fix make.rc on Plan 9 2013-05-24 13:55:19 -07:00
race.bash race.bash, race.bat: build a race enabled cmd/cgo before trying to use it 2013-09-29 10:34:41 +10:00
race.bat race.bat: set exit status 2013-12-17 15:09:42 +04:00
run.bash cgo: enable cgo on dragonfly 2013-09-04 15:19:21 -07:00
run.bat runtime/race: add end-to-end test on windows 2013-08-15 12:13:00 +10:00
run.rc build: remove builder from test suite (fix build) 2013-08-01 13:49:00 +10:00
sudo.bash cmd/cov: delete 2013-05-24 11:06:06 -07:00