From: Austin Clements Date: Wed, 12 Jul 2017 16:12:50 +0000 (-0600) Subject: runtime: pass CLONE_SYSVSEM to clone X-Git-Tag: go1.9rc1~77 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2673f9ed23348c634f6331ee589d489e4d9c7a9b;p=gostls13.git 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 TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/os_linux.go b/src/runtime/os_linux.go index a6efc0e3d1..78899737b6 100644 --- a/src/runtime/os_linux.go +++ b/src/runtime/os_linux.go @@ -132,6 +132,7 @@ const ( _CLONE_FS | /* share cwd, etc */ _CLONE_FILES | /* share fd table */ _CLONE_SIGHAND | /* share sig handler table */ + _CLONE_SYSVSEM | /* share SysV semaphore undo lists (see issue #20763) */ _CLONE_THREAD /* revisit - okay for now */ )