Open cch123 opened 6 years ago
使用go 1.14.1 还是有这个问题 所以有没有根本的解决办法呢
@herohenu ,你在啥环境运行的呀,按说之后的版本都修正了的 我在 mac 的 1.14.2 上跑这个是没问题的:
package main
import "runtime/debug"
type T struct {
// >= 16 bytes to avoid tiny alloc.
a, b int
}
func main() {
debug.SetGCPercent(1)
for i := 0; i < 100000; i++ {
m := make(map[*T]struct{}, 0)
for j := 0; j < 20; j++ {
// During the call to mapassign_fast64, the key argument
// was incorrectly treated as a uint64. If the stack was
// scanned during that call, the only pointer to k was
// missed, leading to *k being collected prematurely.
k := new(T)
m[k] = struct{}{}
}
}
}
http://xargin.com/go-bug/