Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 3 of 3 for isAsyncSafePoint (0.51 sec)

  1. src/runtime/preempt.go

    // queued for gp.
    func wantAsyncPreempt(gp *g) bool {
    	// Check both the G and the P.
    	return (gp.preempt || gp.m.p != 0 && gp.m.p.ptr().preempt) && readgstatus(gp)&^_Gscan == _Grunning
    }
    
    // isAsyncSafePoint reports whether gp at instruction PC is an
    // asynchronous safe point. This indicates that:
    //
    // 1. It's safe to suspend gp and conservatively scan its stack and
    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/traceback.go

    		// during the stack growth check. In that case, the function has
    		// not yet had a chance to do any writes to SP and is safe to unwind.
    		// isAsyncSafePoint does not allow assembly functions to be async preempted,
    		// and preemptPark double-checks that SPWRITE functions are not async preempted.
    		// So for GC stack traversal, we can safely ignore SPWRITE for the innermost frame,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 55.1K bytes
    - Viewed (0)
  3. src/runtime/proc.go

    		dumpgstatus(gp)
    		throw("bad g status")
    	}
    
    	if gp.asyncSafePoint {
    		// Double-check that async preemption does not
    		// happen in SPWRITE assembly functions.
    		// isAsyncSafePoint must exclude this case.
    		f := findfunc(gp.sched.pc)
    		if !f.valid() {
    			throw("preempt at unknown pc")
    		}
    		if f.flag&abi.FuncFlagSPWrite != 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 207.5K bytes
    - Viewed (0)
Back to top