Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 365 for gopark (0.35 sec)

  1. src/runtime/lock_js.go

    		}
    
    		id := scheduleTimeoutEvent(delay)
    		mp := acquirem()
    		notes[n] = gp
    		notesWithTimeout[n] = noteWithTimeout{gp: gp, deadline: deadline}
    		releasem(mp)
    
    		gopark(nil, nil, waitReasonSleep, traceBlockSleep, 1)
    
    		clearTimeoutEvent(id) // note might have woken early, clear timeout
    
    		mp = acquirem()
    		delete(notes, n)
    		delete(notesWithTimeout, n)
    		releasem(mp)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 21:02:20 UTC 2023
    - 7.3K bytes
    - Viewed (0)
  2. src/runtime/select.go

    	// wait for someone to wake us up
    	gp.param = nil
    	// Signal to anyone trying to shrink our stack that we're about
    	// to park on a channel. The window between when this G's status
    	// changes and when we set gp.activeStackChans is not safe for
    	// stack shrinking.
    	gp.parkingOnChan.Store(true)
    	gopark(selparkcommit, nil, waitReasonSelect, traceBlockSelect, 1)
    	gp.activeStackChans = false
    
    	sellock(scases, lockorder)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Mar 13 21:36:04 UTC 2024
    - 15K bytes
    - Viewed (0)
  3. src/runtime/chan.go

    	gp.param = nil
    	c.sendq.enqueue(mysg)
    	// Signal to anyone trying to shrink our stack that we're about
    	// to park on a channel. The window between when this G's status
    	// changes and when we set gp.activeStackChans is not safe for
    	// stack shrinking.
    	gp.parkingOnChan.Store(true)
    	gopark(chanparkcommit, unsafe.Pointer(&c.lock), waitReasonChanSend, traceBlockChanSend, 2)
    	// Ensure the value being sent is kept alive until the
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:16:50 UTC 2024
    - 25.9K bytes
    - Viewed (0)
  4. src/runtime/debugcall.go

    	mcall(func(gp *g) {
    		// Get newg.
    		newg := gp.schedlink.ptr()
    		gp.schedlink = 0
    
    		// Park the calling goroutine.
    		trace := traceAcquire()
    		if trace.ok() {
    			// Trace the event before the transition. It may take a
    			// stack trace, but we won't own the stack after the
    			// transition anymore.
    			trace.GoPark(traceBlockDebugCall, 1)
    		}
    		casGToWaiting(gp, _Grunning, waitReasonDebugCall)
    		if trace.ok() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 05 20:50:21 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  5. src/runtime/HACKING.md

    the P to be reused to run another G. This is still less efficient than
    blocking the G directly since it consumes an M.
    
    To interact directly with the goroutine scheduler, use `gopark` and
    `goready`. `gopark` parks the current goroutine—putting it in the
    "waiting" state and removing it from the scheduler's run queue—and
    schedules another goroutine on the current M/P. `goready` puts a
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 13.9K bytes
    - Viewed (0)
  6. src/runtime/mgc.go

    	gp guintptr
    
    	// Release this m on park. This is used to communicate with the unlock
    	// function, which cannot access the G's stack. It is unused outside of
    	// gcBgMarkWorker().
    	m muintptr
    }
    
    func gcBgMarkWorker(ready chan struct{}) {
    	gp := getg()
    
    	// We pass node to a gopark unlock function, so it can't be on
    	// the stack (see gopark). Prevent deadlock from recursively
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 62K bytes
    - Viewed (0)
  7. src/runtime/traceruntime.go

    }
    
    // GoPark emits a GoBlock event with the provided reason.
    //
    // TODO(mknyszek): Replace traceBlockReason with waitReason. It's silly
    // that we have both, and waitReason is way more descriptive.
    func (tl traceLocker) GoPark(reason traceBlockReason, skip int) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 25.7K bytes
    - Viewed (0)
  8. src/runtime/runtime-gdb.py

    	# int(pc) will not work.
    	try:
    		# python3 / newer versions of gdb
    		pc = int(pc)
    	except gdb.error:
    		# str(pc) can return things like
    		# "0x429d6c <runtime.gopark+284>", so
    		# chop at first space.
    		pc = int(str(pc).split(None, 1)[0], 16)
    	return pc
    
    
    #
    #  For reference, this is what we're trying to do:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 10 12:59:20 UTC 2023
    - 15.4K bytes
    - Viewed (0)
  9. src/runtime/proc.go

    // re-use reasons, add new ones.
    //
    // gopark should be an internal detail,
    // but widely used packages access it using linkname.
    // Notable members of the hall of shame include:
    //   - gvisor.dev/gvisor
    //   - github.com/sagernet/gvisor
    //
    // Do not remove or change the type signature.
    // See go.dev/issue/67401.
    //
    //go:linkname gopark
    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/mfinal.go

    		framecap uintptr
    		argRegs  int
    	)
    
    	gp := getg()
    	lock(&finlock)
    	fing = gp
    	unlock(&finlock)
    
    	for {
    		lock(&finlock)
    		fb := finq
    		finq = nil
    		if fb == nil {
    			gopark(finalizercommit, unsafe.Pointer(&finlock), waitReasonFinalizerWait, traceBlockSystemGoroutine, 1)
    			continue
    		}
    		argRegs = intArgRegs
    		unlock(&finlock)
    		if raceenabled {
    			racefingo()
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 01:56:56 UTC 2024
    - 19K bytes
    - Viewed (0)
Back to top