Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 1,013 for _Gwaiting (0.52 sec)

  1. src/runtime/coro.go

    		// If we can CAS ourselves directly from running to waiting, so do,
    		// keeping the control transfer as lightweight as possible.
    		gp.waitreason = waitReasonCoroutine
    		if !gp.atomicstatus.CompareAndSwap(_Grunning, _Gwaiting) {
    			// The CAS failed: use casgstatus, which will take care of
    			// coordinating with the garbage collector about the state change.
    			casgstatus(gp, _Grunning, _Gwaiting)
    		}
    
    		// Clear gp.m.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:09:18 UTC 2024
    - 7.4K bytes
    - Viewed (0)
  2. src/runtime/preempt.go

    			// ownership of it by transitioning it to
    			// _Gwaiting.
    			if !casGFromPreempted(gp, _Gpreempted, _Gwaiting) {
    				break
    			}
    
    			// We stopped the G, so we have to ready it later.
    			stopped = true
    
    			s = _Gwaiting
    			fallthrough
    
    		case _Grunnable, _Gsyscall, _Gwaiting:
    			// Claim goroutine by setting scan bit.
    			// This may race with execution or readying of gp.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  3. src/runtime/tracestatus.go

    	case _Grunnable:
    		tgs = traceGoRunnable
    	case _Grunning, _Gcopystack:
    		tgs = traceGoRunning
    	case _Gsyscall:
    		tgs = traceGoSyscall
    	case _Gwaiting, _Gpreempted:
    		// There are a number of cases where a G might end up in
    		// _Gwaiting but it's actually running in a non-preemptive
    		// state but needs to present itself as preempted to the
    		// garbage collector. In these cases, we're not going to
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 15 17:03:35 UTC 2024
    - 7.2K bytes
    - Viewed (0)
  4. src/runtime/runtime2.go

    	sudogcache *sudog
    
    	// Central pool of available defer structs.
    	deferlock mutex
    	deferpool *_defer
    
    	// freem is the list of m's waiting to be freed when their
    	// m.exited is set. Linked through m.freelink.
    	freem *m
    
    	gcwaiting  atomic.Bool // gc is waiting to run
    	stopwait   int32
    	stopnote   note
    	sysmonwait atomic.Bool
    	sysmonnote note
    
    	// safePointFn should be called on each P at the next GC
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 47.9K bytes
    - Viewed (0)
  5. src/runtime/proc.go

    // casgstatus(gp, oldstatus, Gcopystack), assuming oldstatus is Gwaiting or Grunnable.
    // Returns old status. Cannot call casgstatus directly, because we are racing with an
    // async wakeup that might come in from netpoll. If we see Gwaiting from the readgstatus,
    // it might have become Grunnable by the time we get to the cas. If we called casgstatus,
    // it would loop waiting for the status to go back to Gwaiting, which it never will.
    //
    //go:nosplit
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 207.5K bytes
    - Viewed (0)
  6. src/runtime/mgcmark.go

    		if (status == _Gwaiting || status == _Gsyscall) && gp.waitsince == 0 {
    			gp.waitsince = work.tstart
    		}
    
    		// scanstack must be done on the system stack in case
    		// we're trying to scan our own stack.
    		systemstack(func() {
    			// If this is a self-scan, put the user G in
    			// _Gwaiting to prevent self-deadlock. It may
    			// already be in _Gwaiting if this is a mark
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 18 21:25:11 UTC 2024
    - 52.5K bytes
    - Viewed (0)
  7. src/runtime/debugcall.go

    		if trace.ok() {
    			traceRelease(trace)
    		}
    		dropg()
    		lock(&sched.lock)
    		globrunqput(gp)
    		unlock(&sched.lock)
    
    		trace = traceAcquire()
    		casgstatus(callingG, _Gwaiting, _Grunnable)
    		if trace.ok() {
    			trace.GoUnpark(callingG, 0)
    			traceRelease(trace)
    		}
    		execute(callingG, true)
    	})
    }
    
    func debugCallWrap2(dispatch uintptr) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 05 20:50:21 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  8. src/runtime/heapdump.go

    		switch status {
    		default:
    			print("runtime: unexpected G.status ", hex(status), "\n")
    			throw("dumpgs in STW - bad status")
    		case _Gdead:
    			// ok
    		case _Grunnable,
    			_Gsyscall,
    			_Gwaiting:
    			dumpgoroutine(gp)
    		}
    	})
    }
    
    func finq_callback(fn *funcval, obj unsafe.Pointer, nret uintptr, fint *_type, ot *ptrtype) {
    	dumpint(tagQueuedFinalizer)
    	dumpint(uint64(uintptr(obj)))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 04:07:57 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  9. src/runtime/tracestack.go

    		// If the scan bit is set, assume we're the ones that acquired it.
    		if status&_Gscan == 0 {
    			// Use the trace status to check this. There are a number of cases
    			// where a running goroutine might be in _Gwaiting, and these cases
    			// are totally fine for taking a stack trace. They're captured
    			// correctly in goStatusToTraceGoStatus.
    			switch goStatusToTraceGoStatus(status, gp.waitreason) {
    			case traceGoRunning, traceGoSyscall:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 21 14:38:56 UTC 2024
    - 11K bytes
    - Viewed (0)
  10. src/runtime/runtime-gdb.py

    G_SCANRUNNABLE = G_SCAN+G_RUNNABLE
    G_SCANRUNNING = G_SCAN+G_RUNNING
    G_SCANSYSCALL = G_SCAN+G_SYSCALL
    G_SCANWAITING = G_SCAN+G_WAITING
    
    sts = {
        G_IDLE: 'idle',
        G_RUNNABLE: 'runnable',
        G_RUNNING: 'running',
        G_SYSCALL: 'syscall',
        G_WAITING: 'waiting',
        G_MORIBUND_UNUSED: 'moribund',
        G_DEAD: 'dead',
        G_ENQUEUE_UNUSED: 'enqueue',
        G_COPYSTACK: 'copystack',
        G_SCAN: 'scan',
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 10 12:59:20 UTC 2023
    - 15.4K bytes
    - Viewed (0)
Back to top