]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: tricky replacements of _g_ in os3_solaris.go
authorMichael Pratt <mpratt@google.com>
Wed, 20 Jul 2022 15:48:43 +0000 (11:48 -0400)
committerMichael Pratt <mpratt@google.com>
Tue, 2 Aug 2022 18:51:42 +0000 (18:51 +0000)
The argument to semacreate is always getg().m.

Change-Id: I4c4104cd6b57ab6b9ed0b7d11b8089bcc9fdd621
Reviewed-on: https://go-review.googlesource.com/c/go/+/418583
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/runtime/os3_solaris.go

index 8c85b71532dfd927a488a5c70ac7971e8681b44a..76cf59772bcb050e0e5593d4dedb5f921e76d98b 100644 (file)
@@ -308,18 +308,17 @@ func semacreate(mp *m) {
        }
 
        var sem *semt
-       _g_ := getg()
 
        // Call libc's malloc rather than malloc. This will
        // allocate space on the C heap. We can't call malloc
        // here because it could cause a deadlock.
-       _g_.m.libcall.fn = uintptr(unsafe.Pointer(&libc_malloc))
-       _g_.m.libcall.n = 1
-       _g_.m.scratch = mscratch{}
-       _g_.m.scratch.v[0] = unsafe.Sizeof(*sem)
-       _g_.m.libcall.args = uintptr(unsafe.Pointer(&_g_.m.scratch))
-       asmcgocall(unsafe.Pointer(&asmsysvicall6x), unsafe.Pointer(&_g_.m.libcall))
-       sem = (*semt)(unsafe.Pointer(_g_.m.libcall.r1))
+       mp.libcall.fn = uintptr(unsafe.Pointer(&libc_malloc))
+       mp.libcall.n = 1
+       mp.scratch = mscratch{}
+       mp.scratch.v[0] = unsafe.Sizeof(*sem)
+       mp.libcall.args = uintptr(unsafe.Pointer(&mp.scratch))
+       asmcgocall(unsafe.Pointer(&asmsysvicall6x), unsafe.Pointer(&mp.libcall))
+       sem = (*semt)(unsafe.Pointer(mp.libcall.r1))
        if sem_init(sem, 0, 0) != 0 {
                throw("sem_init")
        }