- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 18 for systemstack (0.43 sec)
-
test/nowritebarrier.go
//go:noinline func d3() { x.f = y // ERROR "write barrier prohibited by caller" d4() } //go:yeswritebarrierrec func d4() { d2() } //go:noinline func systemstack(func()) {} //go:nowritebarrierrec func e1() { systemstack(e2) systemstack(func() { x.f = y // ERROR "write barrier prohibited by caller" }) } func e2() { x.f = y // ERROR "write barrier prohibited by caller"
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Aug 22 19:18:21 UTC 2023 - 1.3K bytes - Viewed (0) -
src/runtime/tracestring.go
if added { // Write the string to the buffer. systemstack(func() { t.writeString(gen, id, s) }) } return id } // emit emits a string and creates an ID for it, but doesn't add it to the table. Returns the ID. func (t *traceStringTable) emit(gen uintptr, s string) uint64 { // Grab an ID and write the string to the buffer. id := t.tab.stealID() systemstack(func() { t.writeString(gen, id, s) }) return id
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 15 17:03:35 UTC 2024 - 2.4K bytes - Viewed (0) -
src/runtime/testdata/testprogcgo/stackswitch.go
} //export stackSwitchCallback func stackSwitchCallback() { // We want to trigger a bounds check on the g0 stack. To do this, we // need to call a splittable function through systemstack(). // SetGCPercent contains such a systemstack call. gogc := debug.SetGCPercent(100) debug.SetGCPercent(gogc) } // Regression test for https://go.dev/issue/62440. It should be possible for C
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Nov 17 15:33:38 UTC 2023 - 1.1K bytes - Viewed (0) -
src/runtime/cgo_mmap.go
// an errno value. var ret uintptr systemstack(func() { ret = callCgoMmap(addr, n, prot, flags, fd, off) }) if ret < 4096 { return nil, int(ret) } return unsafe.Pointer(ret), 0 } return sysMmap(addr, n, prot, flags, fd, off) } func munmap(addr unsafe.Pointer, n uintptr) { if _cgo_munmap != nil { systemstack(func() { callCgoMunmap(addr, n) }) return }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Aug 25 20:58:13 UTC 2023 - 2.4K bytes - Viewed (0) -
src/cmd/compile/internal/ssagen/nowb.go
func newNowritebarrierrecChecker() *nowritebarrierrecChecker { c := &nowritebarrierrecChecker{ extraCalls: make(map[*ir.Func][]nowritebarrierrecCall), } // Find all systemstack calls and record their targets. In // general, flow analysis can't see into systemstack, but it's // important to handle it for this check, so we model it // directly. This has to happen before transforming closures in walk since
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 15 17:29:46 UTC 2024 - 5.9K bytes - Viewed (0) -
src/runtime/debugcall.go
// g0 stack without switching g. We can't safely make // a call in this state. (We can't even safely // systemstack.) return debugCallSystemStack } // Switch to the system stack to avoid overflowing the user // stack. var ret string systemstack(func() { f := findfunc(pc) if !f.valid() { ret = debugCallUnknownFunc return } name := funcname(f)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Apr 05 20:50:21 UTC 2024 - 7.1K bytes - Viewed (0) -
src/cmd/internal/objabi/funcid.go
"panicwrap": abi.FuncID_panicwrap, "runfinq": abi.FuncID_runfinq, "sigpanic": abi.FuncID_sigpanic, "systemstack_switch": abi.FuncID_systemstack_switch, "systemstack": abi.FuncID_systemstack, // Don't show in call stack but otherwise not special. "deferreturn": abi.FuncIDWrapper, } // Get the function ID for the named function in the named file.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed Dec 06 21:33:59 UTC 2023 - 1.6K bytes - Viewed (0) -
src/runtime/vdso_freebsd_x86.go
//go:nosplit func (th *vdsoTimehands) getHPETTimecounter() (uint32, bool) { idx := int(th.x86_hpet_idx) if idx >= len(hpetDevMap) { return 0, false } p := atomic.Loaduintptr(&hpetDevMap[idx]) if p == 0 { systemstack(func() { initHPETTimecounter(idx) }) p = atomic.Loaduintptr(&hpetDevMap[idx]) } if p == ^uintptr(0) { return 0, false } return *(*uint32)(unsafe.Pointer(p + _HPET_MAIN_COUNTER)), true }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Mar 25 19:53:03 UTC 2024 - 1.9K bytes - Viewed (0) -
src/runtime/tracebuf.go
if refill { w = w.refill(traceNoExperiment) } return w, refill } // flush puts w.traceBuf on the queue of full buffers. func (w traceWriter) flush() traceWriter { systemstack(func() { lock(&trace.lock) if w.traceBuf != nil { traceBufFlush(w.traceBuf, w.gen) } unlock(&trace.lock) }) w.traceBuf = nil return w }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 08 17:47:01 UTC 2024 - 6.8K bytes - Viewed (0) -
src/runtime/rwmutex.go
// while sleeping. acquireLockRankAndM(rw.readRank) lockWithRankMayAcquire(&rw.rLock, getLockRank(&rw.rLock)) if rw.readerCount.Add(1) < 0 { // A writer is pending. Park on the reader queue. systemstack(func() { lock(&rw.rLock) if rw.readerPass > 0 { // Writer finished. rw.readerPass -= 1 unlock(&rw.rLock) } else { // Queue this reader to be woken by // the writer.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 22 14:29:04 UTC 2024 - 5K bytes - Viewed (0)