aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/select.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2015-07-11 11:53:58 -0400
committerRuss Cox <rsc@golang.org>2015-07-13 19:10:22 +0000
commit8c3533c89bae3493df8a0aad23e56c84f8d25714 (patch)
treefbb1bb3e3bfc4202e28b9bb39a5c7e2ae177ddf0 /src/runtime/select.go
parent242ec168c1394038cee17935f92e28fc24baac8e (diff)
downloadgo-8c3533c89bae3493df8a0aad23e56c84f8d25714.tar.gz
go-8c3533c89bae3493df8a0aad23e56c84f8d25714.zip
runtime: add memory barrier for sync send in select
Missed select case when adding the barrier last time. All the more reason to refactor this code in Go 1.6. Fixes #11643. Change-Id: Ib0d19d6e0939296c0a3e06dda5e9b76f813bbc7e Reviewed-on: https://go-review.googlesource.com/12086 Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/select.go')
-rw-r--r--src/runtime/select.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/select.go b/src/runtime/select.go
index 29cc077779..b18b44ce61 100644
--- a/src/runtime/select.go
+++ b/src/runtime/select.go
@@ -575,7 +575,7 @@ syncsend:
print("syncsend: sel=", sel, " c=", c, "\n")
}
if sg.elem != nil {
- typedmemmove(c.elemtype, sg.elem, cas.elem)
+ syncsend(c, sg, cas.elem)
}
sg.elem = nil
gp = sg.g