Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 24 for racereleaseg (0.43 sec)

  1. src/runtime/race0.go

    func raceacquirectx(racectx uintptr, addr unsafe.Pointer)                   { throw("race") }
    func racerelease(addr unsafe.Pointer)                                       { throw("race") }
    func racereleaseg(gp *g, addr unsafe.Pointer)                               { throw("race") }
    func racereleaseacquire(addr unsafe.Pointer)                                { throw("race") }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 28 18:17:57 UTC 2021
    - 2.8K bytes
    - Viewed (0)
  2. src/runtime/race.go

    // In terms of the C memory model, RaceRelease is equivalent to
    // atomic_store(memory_order_release).
    //
    //go:nosplit
    func RaceRelease(addr unsafe.Pointer) {
    	racerelease(addr)
    }
    
    // RaceReleaseMerge is like RaceRelease, but also establishes a happens-before
    // relation with the preceding RaceRelease or RaceReleaseMerge on addr.
    //
    // In terms of the C memory model, RaceReleaseMerge is equivalent to
    // atomic_exchange(memory_order_release).
    //
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 20.4K bytes
    - Viewed (0)
  3. src/runtime/chan.go

    	// those addresses, and we don't want them racing with
    	// operations like close().
    	return unsafe.Pointer(&c.buf)
    }
    
    func racesync(c *hchan, sg *sudog) {
    	racerelease(chanbuf(c, 0))
    	raceacquireg(sg.g, chanbuf(c, 0))
    	racereleaseg(sg.g, chanbuf(c, 0))
    	raceacquire(chanbuf(c, 0))
    }
    
    // Notify the race detector of a send or receive involving buffer entry idx
    // and a channel c or its communicating partner sg.
    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/trace.go

    		tl.Gomaxprocs(gomaxprocs)
    		traceRelease(tl)
    	}
    
    	// Emit a GCActive event in the new generation if necessary.
    	//
    	// It's important that we do this before allowing stop-the-worlds again,
    	// because that could emit global GC-related events.
    	if !stopTrace && (gcphase == _GCmark || gcphase == _GCmarktermination) {
    		tl := traceAcquire()
    		tl.GCActive()
    		traceRelease(tl)
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 21:17:41 UTC 2024
    - 37.1K bytes
    - Viewed (0)
  5. src/internal/race/race.go

    package race
    
    import (
    	"runtime"
    	"unsafe"
    )
    
    const Enabled = true
    
    func Acquire(addr unsafe.Pointer) {
    	runtime.RaceAcquire(addr)
    }
    
    func Release(addr unsafe.Pointer) {
    	runtime.RaceRelease(addr)
    }
    
    func ReleaseMerge(addr unsafe.Pointer) {
    	runtime.RaceReleaseMerge(addr)
    }
    
    func Disable() {
    	runtime.RaceDisable()
    }
    
    func Enable() {
    	runtime.RaceEnable()
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 19 23:33:27 UTC 2023
    - 881 bytes
    - Viewed (0)
  6. src/runtime/debugcall.go

    			trace.GoSched()
    		}
    		casgstatus(gp, _Grunning, _Grunnable)
    		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)
    	})
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 05 20:50:21 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  7. src/runtime/proflabel.go

    	// This would more properly use &getg().labels as the sync address,
    	// but we do the read in a signal handler and can't call the race runtime then.
    	//
    	// This uses racereleasemerge rather than just racerelease so
    	// the acquire in profBuf.read synchronizes with *all* prior
    	// setProfLabel operations, not just the most recent one. This
    	// is important because profBuf.read will observe different
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 2.1K bytes
    - Viewed (0)
  8. src/runtime/mcentral.go

    		trace.GCSweepDone()
    		traceDone = true
    		traceRelease(trace)
    	}
    
    	// We failed to get a span from the mcentral so get one from mheap.
    	s = c.grow()
    	if s == nil {
    		return nil
    	}
    
    	// At this point s is a span that should have free slots.
    havespan:
    	if !traceDone {
    		trace := traceAcquire()
    		if trace.ok() {
    			trace.GCSweepDone()
    			traceRelease(trace)
    		}
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 8.1K bytes
    - Viewed (0)
  9. src/runtime/traceruntime.go

    //
    //go:nosplit
    func (tl traceLocker) ok() bool {
    	return tl.gen != 0
    }
    
    // traceRelease indicates that this M is done writing trace events.
    //
    // nosplit because it's called on the syscall path when stack movement is forbidden.
    //
    //go:nosplit
    func traceRelease(tl traceLocker) {
    	seq := tl.mp.trace.seqlock.Add(1)
    	if debugTraceReentrancy && seq%2 != 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 25.7K bytes
    - Viewed (0)
  10. src/runtime/proc.go

    			if trace.ok() {
    				// It's important that we traceRelease before we call handoffp, which may also traceAcquire.
    				trace.ProcSteal(p2, false)
    				traceRelease(trace)
    			}
    			p2.syscalltick++
    			handoffp(p2)
    		} else if trace.ok() {
    			traceRelease(trace)
    		}
    	}
    
    	// Wait for remaining Ps to run fn.
    	if wait {
    		for {
    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