Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 49 for curg (0.04 sec)

  1. src/runtime/asm_loong64.s

    	// switch back to m->curg stack.
    	// NOTE: unwindm knows that the saved g->sched.sp is at 8(R29) aka savedsp-16(SP).
    	MOVV	m_g0(R12), R19
    	MOVV	(g_sched+gobuf_sp)(R19), R13
    	MOVV	R13, savedsp-24(SP) // must match frame size
    	MOVV	R3, (g_sched+gobuf_sp)(R19)
    
    	// Switch to m->curg stack and call runtime.cgocallbackg.
    	// Because we are taking over the execution of m->curg
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon May 13 15:04:25 UTC 2024
    - 26.5K bytes
    - Viewed (0)
  2. src/runtime/asm_ppc64x.s

    	// save that information (m->curg->sched) so we can restore it.
    	// We can restore m->curg->sched.sp easily, because calling
    	// runtime.cgocallbackg leaves SP unchanged upon return.
    	// To save m->curg->sched.pc, we push it onto the curg stack and
    	// open a frame the same size as cgocallback's g0 frame.
    	// Once we switch to the curg stack, the pushed PC will appear
    	// to be the return PC of cgocallback, so that the traceback
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 18:17:17 UTC 2024
    - 45.4K bytes
    - Viewed (0)
  3. src/runtime/preempt.go

    // the signal case.
    //
    //go:systemstack
    func suspendG(gp *g) suspendGState {
    	if mp := getg().m; mp.curg != nil && readgstatus(mp.curg) == _Grunning {
    		// Since we're on the system stack of this M, the user
    		// G is stuck at an unsafe point. If another goroutine
    		// were to try to preempt m.curg, it could deadlock.
    		throw("suspendG from non-preemptible goroutine")
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  4. src/runtime/race.go

    func racefree(p unsafe.Pointer, sz uintptr) {
    	racecall(&__tsan_free, uintptr(p), sz, 0, 0)
    }
    
    //go:nosplit
    func racegostart(pc uintptr) uintptr {
    	gp := getg()
    	var spawng *g
    	if gp.m.curg != nil {
    		spawng = gp.m.curg
    	} else {
    		spawng = gp
    	}
    
    	var racectx uintptr
    	racecall(&__tsan_go_start, spawng.racectx, uintptr(unsafe.Pointer(&racectx)), pc, 0)
    	return racectx
    }
    
    //go:nosplit
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 20.4K bytes
    - Viewed (0)
  5. src/runtime/stack.go

    	}
    	if thisg.m.morebuf.g.ptr() != thisg.m.curg {
    		print("runtime: newstack called from g=", hex(thisg.m.morebuf.g), "\n"+"\tm=", thisg.m, " m->curg=", thisg.m.curg, " m->g0=", thisg.m.g0, " m->gsignal=", thisg.m.gsignal, "\n")
    		morebuf := thisg.m.morebuf
    		traceback(morebuf.pc, morebuf.sp, morebuf.lr, morebuf.g.ptr())
    		throw("runtime: wrong goroutine in newstack")
    	}
    
    	gp := thisg.m.curg
    
    	if thisg.m.curg.throwsplit {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 41.1K bytes
    - Viewed (0)
  6. src/runtime/tracestack.go

    func traceStack(skip int, gp *g, gen uintptr) uint64 {
    	var pcBuf [traceStackSize]uintptr
    
    	// Figure out gp and mp for the backtrace.
    	var mp *m
    	if gp == nil {
    		mp = getg().m
    		gp = mp.curg
    	}
    
    	// Double-check that we own the stack we're about to trace.
    	if debug.traceCheckStackOwnership != 0 && gp != nil {
    		status := readgstatus(gp)
    		// If the scan bit is set, assume we're the ones that acquired it.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 21 14:38:56 UTC 2024
    - 11K bytes
    - Viewed (0)
  7. src/runtime/cgocall.go

    // taken from the frame structure, records the results in the frame,
    // and returns to runtime.asmcgocall.
    //
    // After it regains control, runtime.asmcgocall switches back to the
    // original g (m->curg)'s stack and returns to runtime.cgocall.
    //
    // After it regains control, runtime.cgocall calls exitsyscall, which blocks
    // until this m can run Go code without violating the $GOMAXPROCS limit,
    // and then unlocks g from m.
    //
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:16:47 UTC 2024
    - 24.2K bytes
    - Viewed (0)
  8. src/runtime/race_amd64.s

    // See racecallback for command codes.
    TEXT	runtime·racecallbackthunk(SB), NOSPLIT|NOFRAME, $0-0
    	// Handle command raceGetProcCmd (0) here.
    	// First, code below assumes that we are on curg, while raceGetProcCmd
    	// can be executed on g0. Second, it is called frequently, so will
    	// benefit from this fast path.
    	CMPQ	RARG0, $0
    	JNE	rest
    	get_tls(RARG0)
    	MOVQ	g(RARG0), RARG0
    	MOVQ	g_m(RARG0), RARG0
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  9. src/runtime/panic.go

    }
    
    // Create a new deferred function fn, which has no arguments and results.
    // The compiler turns a defer statement into a call to this.
    func deferproc(fn func()) {
    	gp := getg()
    	if gp.m.curg != gp {
    		// go code on the system stack can't defer
    		throw("defer on system stack")
    	}
    
    	d := newdefer()
    	d.link = gp._defer
    	gp._defer = d
    	d.fn = fn
    	d.pc = getcallerpc()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 43.8K bytes
    - Viewed (0)
  10. src/runtime/race_arm64.s

    // See racecallback for command codes.
    TEXT	runtime·racecallbackthunk(SB), NOSPLIT|NOFRAME, $0
    	// Handle command raceGetProcCmd (0) here.
    	// First, code below assumes that we are on curg, while raceGetProcCmd
    	// can be executed on g0. Second, it is called frequently, so will
    	// benefit from this fast path.
    	CBNZ	R0, rest
    	MOVD	g, R13
    #ifdef TLS_darwin
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 15.5K bytes
    - Viewed (0)
Back to top