Файловый менеджер - Редактировать - /usr/local/go/test/uintptrescapes.dir/main.go
Ðазад
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "fmt" "os" "sync" "unsafe" "./a" ) func F1() int { var buf [1024]int a.F1(uintptr(unsafe.Pointer(&buf[0]))) return buf[0] } func F2() int { var buf [1024]int a.F2(uintptr(unsafe.Pointer(&buf[0]))) return buf[0] } var t = a.GetT() func M1() int { var buf [1024]int t.M1(uintptr(unsafe.Pointer(&buf[0]))) return buf[0] } func M2() int { var buf [1024]int t.M2(uintptr(unsafe.Pointer(&buf[0]))) return buf[0] } func main() { // Use different goroutines to force stack growth. var wg sync.WaitGroup wg.Add(4) c := make(chan bool, 4) go func() { defer wg.Done() b := F1() if b != 42 { fmt.Printf("F1: got %d, expected 42\n", b) c <- false } }() go func() { defer wg.Done() b := F2() if b != 42 { fmt.Printf("F2: got %d, expected 42\n", b) c <- false } }() go func() { defer wg.Done() b := M1() if b != 42 { fmt.Printf("M1: got %d, expected 42\n", b) c <- false } }() go func() { defer wg.Done() b := M2() if b != 42 { fmt.Printf("M2: got %d, expected 42\n", b) c <- false } }() wg.Wait() select { case <-c: os.Exit(1) default: } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка