Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 74 for systemstack (0.23 sec)

  1. 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)
  2. src/runtime/lockrank_on.go

    // other (nosplit) call before this call (including the call to lock() itself).
    //
    // However, we switch to the systemstack to record the lock held to ensure that
    // we record an accurate lock ordering. e.g., without systemstack, a stack
    // split on entry to lock2() would record stack split locks as taken after l,
    // even though l is not actually locked yet.
    func lockWithRank(l *mutex, rank lockRank) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:29:04 UTC 2024
    - 10.6K bytes
    - Viewed (0)
  3. 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)
  4. src/runtime/cgo_sigaction.go

    			// systemstack will make the call directly; otherwise, it will switch to
    			// g0 to ensure we have enough room to call a libc function.
    			//
    			// The function literal that we pass to systemstack is not nosplit, but
    			// that's ok: we'll be running on a fresh, clean system stack so the stack
    			// check will always succeed anyway.
    			systemstack(func() {
    				ret = callCgoSigaction(uintptr(sig), new, old)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 05 17:54:15 UTC 2022
    - 3.3K bytes
    - Viewed (0)
  5. 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)
  6. 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)
  7. 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)
  8. src/runtime/stubs.go

    func mcall(fn func(*g))
    
    // systemstack runs fn on a system stack.
    // If systemstack is called from the per-OS-thread (g0) stack, or
    // if systemstack is called from the signal handling (gsignal) stack,
    // systemstack calls fn directly and returns.
    // Otherwise, systemstack is being called from the limited stack
    // of an ordinary goroutine. In this case, systemstack switches
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 20.2K bytes
    - Viewed (0)
  9. 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)
  10. src/runtime/pinner.go

    	if pin {
    		if pinState.isPinned() {
    			// multiple pins on same object, set multipin bit
    			pinState.setMultiPinned(true)
    			// and increase the pin counter
    			// TODO(mknyszek): investigate if systemstack is necessary here
    			systemstack(func() {
    				offset := objIndex * span.elemsize
    				span.incPinCounter(offset)
    			})
    		} else {
    			// set pin bit
    			pinState.setPinned(true)
    		}
    	} else {
    		// unpin
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 04 14:29:45 UTC 2024
    - 11K bytes
    - Viewed (0)
Back to top