Search Options

Results per page
Sort
Preferred Languages
Advance

Results 31 - 40 of 59 for m_curg (0.22 sec)

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

    		if u.flags&unwindJumpStack != 0 && gp == gp.m.g0 && gp.m.curg != nil && gp.m.curg.m == gp.m {
    			switch f.funcID {
    			case abi.FuncID_morestack:
    				// morestack does not return normally -- newstack()
    				// gogo's to curg.sched. Match that.
    				// This keeps morestack() from showing up in the backtrace,
    				// but that makes some sense since it'll never be returned
    				// to.
    				gp = gp.m.curg
    				u.g.set(gp)
    				frame.pc = gp.sched.pc
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 55.1K bytes
    - Viewed (0)
  4. src/runtime/tracestatus.go

    		// _Gsyscall is the tracer's signal that the P its bound to is also in a syscall,
    		// so we need to emit a status that matches. See #64318.
    		if w.mp.p.ptr() == pp && w.mp.curg != nil && readgstatus(w.mp.curg)&^_Gscan == _Gsyscall {
    			status = traceProcSyscall
    		}
    	case _Psyscall:
    		status = traceProcSyscall
    	default:
    		throw("attempt to trace invalid or unsupported P status")
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 15 17:03:35 UTC 2024
    - 7.2K 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/HACKING.md

    so their memory remains type stable. As a result, the runtime can
    avoid write barriers in the depths of the scheduler.
    
    `getg()` and `getg().m.curg`
    ----------------------------
    
    To get the current user `g`, use `getg().m.curg`.
    
    `getg()` alone returns the current `g`, but when executing on the
    system or signal stacks, this will return the current M's "g0" or
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 13.9K bytes
    - Viewed (0)
  7. 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)
  8. 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)
  9. src/runtime/proc.go

    		var tagPtr *unsafe.Pointer
    		if gp != nil && gp.m != nil && gp.m.curg != nil {
    			tagPtr = &gp.m.curg.labels
    		}
    		cpuprof.add(tagPtr, stk[:n])
    
    		gprof := gp
    		var mp *m
    		var pp *p
    		if gp != nil && gp.m != nil {
    			if gp.m.curg != nil {
    				gprof = gp.m.curg
    			}
    			mp = gp.m
    			pp = gp.m.p.ptr()
    		}
    		traceCPUSample(gprof, mp, pp, stk[:n])
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 207.5K bytes
    - Viewed (0)
  10. src/runtime/debugcall.go

    // function call with return PC pc. If not, it returns a string
    // explaining why.
    //
    //go:nosplit
    func debugCallCheck(pc uintptr) string {
    	// No user calls from the system stack.
    	if getg() != getg().m.curg {
    		return debugCallSystemStack
    	}
    	if sp := getcallersp(); !(getg().stack.lo < sp && sp <= getg().stack.hi) {
    		// Fast syscalls (nanotime) and racecall switch to the
    		// g0 stack without switching g. We can't safely make
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 05 20:50:21 UTC 2024
    - 7.1K bytes
    - Viewed (0)
Back to top