Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 4 of 4 for casGToWaitingForGC (0.86 sec)

  1. src/runtime/mgcmark.go

    			// already be in _Gwaiting if this is a mark
    			// worker or we're in mark termination.
    			userG := getg().m.curg
    			selfScan := gp == userG && readgstatus(userG) == _Grunning
    			if selfScan {
    				casGToWaitingForGC(userG, _Grunning, waitReasonGarbageCollectionScan)
    			}
    
    			// TODO: suspendG blocks (and spins) until gp
    			// stops, which may take a while for
    			// running goroutines. Consider doing this in
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 18 21:25:11 UTC 2024
    - 52.5K bytes
    - Viewed (0)
  2. src/runtime/mgc.go

    	mp.preemptoff = "gcing"
    	mp.traceback = 2
    	curgp := mp.curg
    	// N.B. The execution tracer is not aware of this status
    	// transition and handles it specially based on the
    	// wait reason.
    	casGToWaitingForGC(curgp, _Grunning, waitReasonGarbageCollection)
    
    	// Run gc on the g0 stack. We do this so that the g stack
    	// we're currently running on will no longer change. Cuts
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 62K bytes
    - Viewed (0)
  3. src/runtime/trace.go

    		ug := untracedG{gp: gp, mid: -1}
    		systemstack(func() {
    			me := getg().m.curg
    			// We don't have to handle this G status transition because we
    			// already eliminated ourselves from consideration above.
    			casGToWaitingForGC(me, _Grunning, waitReasonTraceGoroutineStatus)
    			// We need to suspend and take ownership of the G to safely read its
    			// goid. Note that we can't actually emit the event at this point
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 21:17:41 UTC 2024
    - 37.1K bytes
    - Viewed (0)
  4. src/runtime/proc.go

    	casgstatus(gp, old, _Gwaiting)
    }
    
    // casGToWaitingForGC transitions gp from old to _Gwaiting, and sets the wait reason.
    // The wait reason must be a valid isWaitingForGC wait reason.
    //
    // Use this over casgstatus when possible to ensure that a waitreason is set.
    func casGToWaitingForGC(gp *g, old uint32, reason waitReason) {
    	if !reason.isWaitingForGC() {
    		throw("casGToWaitingForGC with non-isWaitingForGC wait reason")
    	}
    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