runtime: correct semaphore implementation on netbsd
authorNikhil Benesch <nikhil.benesch@gmail.com>
Tue, 13 Oct 2020 07:17:55 +0000 (07:17 +0000)
committerIan Lance Taylor <iant@golang.org>
Wed, 14 Oct 2020 20:56:01 +0000 (13:56 -0700)
commitca56d576241c6783eb36eea526b42c4f3fbf697b
tree4c2d5a0f1dc34d4a445583b7ba349b51b2ee875e
parent61a43de58cb6de7212a622060500ad0a0fd94fae
runtime: correct semaphore implementation on netbsd

NetBSD's semaphores use the underlying lighweight process mechanism
(LWP) on NetBSD, rather than pthreads. This means the m.prodcid needs
to be set to the LWP ID rather than the pthread ID in order for unpark
notifications to get sent to the right place.

Introduce a new getProcID() method that selects the correct ID for the
platform.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261742
gcc/go/gofrontend/MERGE
libgo/go/runtime/os_aix.go
libgo/go/runtime/os_gccgo.go
libgo/go/runtime/os_hurd.go
libgo/go/runtime/os_linux.go
libgo/go/runtime/os_netbsd.go
libgo/go/runtime/os_solaris.go