- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 12 for asyncPreempt (0.28 sec)
-
src/runtime/preempt.go
} //go:generate go run mkpreempt.go // asyncPreempt saves all user registers and calls asyncPreempt2. // // When stack scanning encounters an asyncPreempt frame, it scans that // frame and its parent frame conservatively. // // asyncPreempt is implemented in assembly. func asyncPreempt() //go:nosplit func asyncPreempt2() { gp := getg() gp.asyncSafePoint = true if gp.preemptStop {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri May 17 15:41:45 UTC 2024 - 15.1K bytes - Viewed (0) -
src/runtime/signal_windows.go
// won't get to see who faulted.) // Also don't push a sigpanic frame if the faulting PC // is the entry of asyncPreempt. In this case, we suspended // the thread right between the fault and the exception handler // starting to run, and we have pushed an asyncPreempt call. // The exception is not from asyncPreempt, so not to push a // sigpanic call to make it look like that. Instead, just // overwrite the PC. (See issue #35773)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Oct 17 20:32:29 UTC 2023 - 14.5K bytes - Viewed (0) -
src/runtime/mkpreempt.go
// Copyright 2019 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. //go:build ignore // mkpreempt generates the asyncPreempt functions for each // architecture. package main import ( "flag" "fmt" "io" "log" "os" "strings" ) // Copied from cmd/compile/internal/ssa/gen/*Ops.go var regNames386 = []string{ "AX",
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Nov 20 17:19:36 UTC 2023 - 15.3K bytes - Viewed (0) -
src/runtime/os_windows.go
gp := gFromSP(mp, c.sp()) if gp != nil && wantAsyncPreempt(gp) { if ok, newpc := isAsyncSafePoint(gp, c.ip(), c.sp(), c.lr()); ok { // Inject call to asyncPreempt targetPC := abi.FuncPCABI0(asyncPreempt) switch GOARCH { default: throw("unsupported architecture") case "386", "amd64": // Make it look like the thread called targetPC. sp := c.sp()
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Apr 26 22:55:25 UTC 2024 - 41.5K bytes - Viewed (0) -
src/runtime/signal_unix.go
// preempt. if wantAsyncPreempt(gp) { if ok, newpc := isAsyncSafePoint(gp, ctxt.sigpc(), ctxt.sigsp(), ctxt.siglr()); ok { // Adjust the PC and inject a call to asyncPreempt. ctxt.pushCall(abi.FuncPCABI0(asyncPreempt), newpc) } } // Acknowledge the preemption. gp.m.preemptGen.Add(1) gp.m.signalPending.Store(0) if GOOS == "darwin" || GOOS == "ios" {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri May 10 16:04:54 UTC 2024 - 45K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/LOONG64Ops.go
"F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "F25", "F26", "F27", "F28", "F29", "F30", "F31", // If you add registers, update asyncPreempt in runtime. // pseudo-registers "SB", } func init() { // Make map from reg names to reg integers. if len(regNamesLOONG64) > 64 { panic("too many registers") }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 21 19:04:19 UTC 2023 - 25.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/MIPS64Ops.go
"F23", "F24", "F25", "F26", "F27", "F28", "F29", "F30", "F31", "HI", // high bits of multiplication "LO", // low bits of multiplication // If you add registers, update asyncPreempt in runtime. // pseudo-registers "SB", } func init() { // Make map from reg names to reg integers. if len(regNamesMIPS64) > 64 { panic("too many registers") }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 24 03:36:31 UTC 2023 - 25.5K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/MIPSOps.go
"F14", "F16", "F18", "F20", "F22", "F24", "F26", "F28", "F30", "HI", // high bits of multiplication "LO", // low bits of multiplication // If you add registers, update asyncPreempt in runtime. // pseudo-registers "SB", } func init() { // Make map from reg names to reg integers. if len(regNamesMIPS) > 64 { panic("too many registers") } num := map[string]int{}
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 24 14:43:03 UTC 2023 - 24K bytes - Viewed (0) -
src/runtime/proc_test.go
} func TestAsyncPreempt(t *testing.T) { if !runtime.PreemptMSupported { t.Skip("asynchronous preemption not supported on this platform") } output := runTestProg(t, "testprog", "AsyncPreempt") want := "OK\n" if output != want { t.Fatalf("want %s, got %s\n", want, output) } } func TestGCFairness(t *testing.T) { output := runTestProg(t, "testprog", "GCFairness") want := "OK\n"
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed Jun 14 00:03:57 UTC 2023 - 25.8K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/386Ops.go
var regNames386 = []string{ "AX", "CX", "DX", "BX", "SP", "BP", "SI", "DI", "X0", "X1", "X2", "X3", "X4", "X5", "X6", "X7", // If you add registers, update asyncPreempt in runtime // pseudo-registers "SB", } func init() { // Make map from reg names to reg integers. if len(regNames386) > 64 { panic("too many registers") } num := map[string]int{}
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Mar 14 08:10:32 UTC 2023 - 45.1K bytes - Viewed (0)