Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 242 for getg (0.17 sec)

  1. src/runtime/race.go

    //go:nosplit
    func racerelease(addr unsafe.Pointer) {
    	racereleaseg(getg(), addr)
    }
    
    //go:nosplit
    func racereleaseg(gp *g, addr unsafe.Pointer) {
    	if getg().raceignore != 0 || !isvalidaddr(addr) {
    		return
    	}
    	racecall(&__tsan_release, gp.racectx, uintptr(addr), 0, 0)
    }
    
    //go:nosplit
    func racereleaseacquire(addr unsafe.Pointer) {
    	racereleaseacquireg(getg(), addr)
    }
    
    //go:nosplit
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 20.4K bytes
    - Viewed (0)
  2. src/runtime/os2_aix.go

    //go:nosplit
    func exit(code int32) {
    	gp := getg()
    
    	// Check the validity of g because without a g during
    	// newosproc0.
    	if gp != nil {
    		syscall1(&libc_exit, uintptr(code))
    		return
    	}
    	exit1(code)
    }
    
    func write2(fd, p uintptr, n int32) int32
    
    //go:nosplit
    func write1(fd uintptr, p unsafe.Pointer, n int32) int32 {
    	gp := getg()
    
    	// Check the validity of g because without a g during
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Dec 14 17:22:18 UTC 2023
    - 20.9K bytes
    - Viewed (0)
  3. src/runtime/lockrank_on.go

    			throw("lockRank release without matching lockRank acquire")
    		}
    	})
    
    	releasem(getg().m)
    }
    
    // nosplit because it may be called from nosplit contexts.
    //
    //go:nosplit
    func lockWithRankMayAcquire(l *mutex, rank lockRank) {
    	gp := getg()
    	if gp.m.locksHeldLen == 0 {
    		// No possibility of lock ordering problem if no other locks held
    		return
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:29:04 UTC 2024
    - 10.6K bytes
    - Viewed (0)
  4. src/runtime/os_windows.go

    	if ns < 0 {
    		result = stdcall2(_WaitForSingleObject, getg().m.waitsema, uintptr(_INFINITE))
    	} else {
    		start := nanotime()
    		elapsed := int64(0)
    		for {
    			ms := int64(timediv(ns-elapsed, 1000000, nil))
    			if ms == 0 {
    				ms = 1
    			}
    			result = stdcall4(_WaitForMultipleObjects, 2,
    				uintptr(unsafe.Pointer(&[2]uintptr{getg().m.waitsema, getg().m.resumesema})),
    				0, uintptr(ms))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 26 22:55:25 UTC 2024
    - 41.5K bytes
    - Viewed (0)
  5. src/runtime/export_test.go

    	if !ok {
    		// We were unable to get the requested reservation.
    		// Release what we did get and fail.
    		sysFreeOS(got, physPageSize)
    	}
    	return
    }
    
    func GetNextArenaHint() uintptr {
    	return mheap_.arenaHints.addr
    }
    
    type G = g
    
    type Sudog = sudog
    
    func Getg() *G {
    	return getg()
    }
    
    func Goid() uint64 {
    	return getg().goid
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:50:53 UTC 2024
    - 46.1K bytes
    - Viewed (0)
  6. src/runtime/signal_windows.go

    	callbackLastVCH
    )
    
    // sigFetchGSafe is like getg() but without panicking
    // when TLS is not set.
    // Only implemented on windows/386, which is the only
    // arch that loads TLS when calling getg(). Others
    // use a dedicated register.
    func sigFetchGSafe() *g
    
    func sigFetchG() *g {
    	if GOARCH == "386" {
    		return sigFetchGSafe()
    	}
    	return getg()
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 17 20:32:29 UTC 2023
    - 14.5K bytes
    - Viewed (0)
  7. src/runtime/HACKING.md

    so their memory remains type stable. As a result, the runtime can
    avoid write barriers in the depths of the scheduler.
    
    `getg()` and `getg().m.curg`
    ----------------------------
    
    To get the current user `g`, use `getg().m.curg`.
    
    `getg()` alone returns the current `g`, but when executing on the
    system or signal stacks, this will return the current M's "g0" or
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 13.9K bytes
    - Viewed (0)
  8. src/runtime/os_plan9.go

    	var buf [_ERRMAX]byte
    	if !atomic.Cas(&exiting, 0, 1) {
    		return
    	}
    	getg().m.locks++
    	n := copy(buf[:], goexits)
    	n = copy(buf[n:], gostringnocopy(status))
    	pid := getpid()
    	for mp := (*m)(atomic.Loadp(unsafe.Pointer(&allm))); mp != nil; mp = mp.alllink {
    		if mp.procid != 0 && mp.procid != pid {
    			postnote(mp.procid, buf[:])
    		}
    	}
    	getg().m.locks--
    }
    
    var procdir = []byte("/proc/")
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 10.3K bytes
    - Viewed (0)
  9. src/runtime/tracestack.go

    		// symbolizer.
    		pcBuf[0] = logicalStackSentinel
    		if getg() == gp {
    			nstk += callers(skip+1, pcBuf[1:])
    		} else if gp != nil {
    			nstk += gcallers(gp, skip, pcBuf[1:])
    		}
    	} else {
    		// Fast path: Unwind using frame pointers.
    		pcBuf[0] = uintptr(skip)
    		if getg() == gp {
    			nstk += fpTracebackPCs(unsafe.Pointer(getfp()), pcBuf[1:])
    		} else if gp != nil {
    			// Three cases:
    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/os_darwin.go

    		minitSignalStack()
    	}
    	minitSignalMask()
    	getg().m.procid = uint64(pthread_self())
    }
    
    // Called from dropm to undo the effect of an minit.
    //
    //go:nosplit
    func unminit() {
    	// iOS does not support alternate signal stack.
    	// See minit.
    	if !(GOOS == "ios" && GOARCH == "arm64") {
    		unminitSignals()
    	}
    	getg().m.procid = 0
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Dec 05 20:34:30 UTC 2023
    - 11.9K bytes
    - Viewed (0)
Back to top