Commit 2673f9ed authored by Austin Clements's avatar Austin Clements

runtime: pass CLONE_SYSVSEM to clone

SysV semaphore undo lists should be shared by threads, just like
several other resources listed in cloneFlags. Currently we don't do
this, but it probably doesn't affect anything because 1) probably
nobody uses SysV semaphores from Go and 2) Go-created threads never
exit until the process does. Beyond being the right thing to do,
user-level QEMU requires this flag because it depends on glibc to
create new threads and glibc uses this flag.

Fixes #20763.

Change-Id: I1d1dafec53ed87e0f4d4d432b945e8e68bb72dcd
Reviewed-on: https://go-review.googlesource.com/48170
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 0b9e362b
...@@ -132,6 +132,7 @@ const ( ...@@ -132,6 +132,7 @@ const (
_CLONE_FS | /* share cwd, etc */ _CLONE_FS | /* share cwd, etc */
_CLONE_FILES | /* share fd table */ _CLONE_FILES | /* share fd table */
_CLONE_SIGHAND | /* share sig handler table */ _CLONE_SIGHAND | /* share sig handler table */
_CLONE_SYSVSEM | /* share SysV semaphore undo lists (see issue #20763) */
_CLONE_THREAD /* revisit - okay for now */ _CLONE_THREAD /* revisit - okay for now */
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment