Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 32 for systemstack (0.17 sec)

  1. src/runtime/lockrank_on.go

    // other (nosplit) call before this call (including the call to lock() itself).
    //
    // However, we switch to the systemstack to record the lock held to ensure that
    // we record an accurate lock ordering. e.g., without systemstack, a stack
    // split on entry to lock2() would record stack split locks as taken after l,
    // even though l is not actually locked yet.
    func lockWithRank(l *mutex, rank lockRank) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:29:04 UTC 2024
    - 10.6K bytes
    - Viewed (0)
  2. src/runtime/stubs.go

    func mcall(fn func(*g))
    
    // systemstack runs fn on a system stack.
    // If systemstack is called from the per-OS-thread (g0) stack, or
    // if systemstack is called from the signal handling (gsignal) stack,
    // systemstack calls fn directly and returns.
    // Otherwise, systemstack is being called from the limited stack
    // of an ordinary goroutine. In this case, systemstack switches
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 20.2K bytes
    - Viewed (0)
  3. src/runtime/pinner.go

    	if pin {
    		if pinState.isPinned() {
    			// multiple pins on same object, set multipin bit
    			pinState.setMultiPinned(true)
    			// and increase the pin counter
    			// TODO(mknyszek): investigate if systemstack is necessary here
    			systemstack(func() {
    				offset := objIndex * span.elemsize
    				span.incPinCounter(offset)
    			})
    		} else {
    			// set pin bit
    			pinState.setPinned(true)
    		}
    	} else {
    		// unpin
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 04 14:29:45 UTC 2024
    - 11K bytes
    - Viewed (0)
  4. src/runtime/export_test.go

    	return (*LFNode)((*lfstack)(head).pop())
    }
    func LFNodeValidate(node *LFNode) {
    	lfnodeValidate((*lfnode)(unsafe.Pointer(node)))
    }
    
    func Netpoll(delta int64) {
    	systemstack(func() {
    		netpoll(delta)
    	})
    }
    
    func GCMask(x any) (ret []byte) {
    	systemstack(func() {
    		ret = getgcmask(x)
    	})
    	return
    }
    
    func RunSchedLocalQueueTest() {
    	pp := new(p)
    	gs := make([]g, len(pp.runq))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:50:53 UTC 2024
    - 46.1K bytes
    - Viewed (0)
  5. src/runtime/os_windows.go

    	case _WAIT_TIMEOUT:
    		return -1
    
    	case _WAIT_ABANDONED:
    		systemstack(func() {
    			throw("runtime.semasleep wait_abandoned")
    		})
    
    	case _WAIT_FAILED:
    		systemstack(func() {
    			print("runtime: waitforsingleobject wait_failed; errno=", getlasterror(), "\n")
    			throw("runtime.semasleep wait_failed")
    		})
    
    	default:
    		systemstack(func() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 26 22:55:25 UTC 2024
    - 41.5K bytes
    - Viewed (0)
  6. src/runtime/mgcwork.go

    // It's important that any use of gcWork during the mark phase prevent
    // the garbage collector from transitioning to mark termination since
    // gcWork may locally hold GC work buffers. This can be done by
    // disabling preemption (systemstack or acquirem).
    type gcWork struct {
    	// wbuf1 and wbuf2 are the primary and secondary work buffers.
    	//
    	// This can be thought of as a stack of both work buffers'
    	// pointers concatenated. When we pop the last pointer, we
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 12.9K bytes
    - Viewed (0)
  7. src/runtime/mcache.go

    	size uintptr   // total size of stacks in list
    }
    
    // dummy mspan that contains no free objects.
    var emptymspan mspan
    
    func allocmcache() *mcache {
    	var c *mcache
    	systemstack(func() {
    		lock(&mheap_.lock)
    		c = (*mcache)(mheap_.cachealloc.alloc())
    		c.flushGen.Store(mheap_.sweepgen)
    		unlock(&mheap_.lock)
    	})
    	for i := range c.alloc {
    		c.alloc[i] = &emptymspan
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 10K bytes
    - Viewed (0)
  8. src/runtime/trace.go

    		// If the status was traced, nothing else to do.
    		if gp.trace.statusWasTraced(gen) {
    			return
    		}
    		// Scribble down information about this goroutine.
    		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.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 21:17:41 UTC 2024
    - 37.1K bytes
    - Viewed (0)
  9. src/runtime/asm_s390x.s

    	MOVD	(g_sched+gobuf_sp)(g), R15	// sp = m->g0->sched.sp
    	SUB	$16, R15
    	MOVD	R3, 8(R15)
    	MOVD	$0, 0(R15)
    	BL	(R4)
    	BR	runtime·badmcall2(SB)
    
    // systemstack_switch is a dummy routine that systemstack leaves at the bottom
    // of the G stack.  We need to distinguish the routine that
    // lives at the bottom of the G stack from the one that lives
    // at the top of the system stack because the one at the top of
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Jan 25 09:18:28 UTC 2024
    - 28.1K bytes
    - Viewed (0)
  10. src/runtime/panic.go

    		}
    
    		docrash = dopanic_m(gp, pc, sp)
    	})
    
    	if docrash {
    		// By crashing outside the above systemstack call, debuggers
    		// will not be confused when generating a backtrace.
    		// Function crash is marked nosplit to avoid stack growth.
    		crash()
    	}
    
    	systemstack(func() {
    		exit(2)
    	})
    
    	*(*int)(nil) = 0 // not reached
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 43.8K bytes
    - Viewed (0)
Back to top