Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 31 for goexit0 (0.51 sec)

  1. src/runtime/preempt.go

    			throw("invalid g status")
    
    		case _Gdead:
    			// Nothing to suspend.
    			//
    			// preemptStop may need to be cleared, but
    			// doing that here could race with goroutine
    			// reuse. Instead, goexit0 clears it.
    			return suspendGState{dead: true}
    
    		case _Gcopystack:
    			// The stack is being copied. We need to wait
    			// until this is done.
    
    		case _Gpreempted:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  2. src/iter/pull_test.go

    	return func(yield func(int) bool) {
    		runtime.Goexit()
    	}
    }
    
    func goexitCleanupSeq() Seq[int] {
    	return func(yield func(int) bool) {
    		for {
    			if !yield(55) {
    				runtime.Goexit()
    			}
    		}
    	}
    }
    
    func TestPull2Goexit(t *testing.T) {
    	t.Run("next", func(t *testing.T) {
    		var next func() (int, int, bool)
    		var stop func()
    		if !goexits(t, func() {
    			next, stop = Pull2(goexitSeq2())
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:09:28 UTC 2024
    - 10.2K bytes
    - Viewed (0)
  3. src/runtime/proc.go

    	schedule()
    }
    
    // Finishes execution of the current goroutine.
    func goexit1() {
    	if raceenabled {
    		racegoend()
    	}
    	trace := traceAcquire()
    	if trace.ok() {
    		trace.GoEnd()
    		traceRelease(trace)
    	}
    	mcall(goexit0)
    }
    
    // goexit continuation on g0.
    func goexit0(gp *g) {
    	gdestroy(gp)
    	schedule()
    }
    
    func gdestroy(gp *g) {
    	mp := getg().m
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 207.5K bytes
    - Viewed (0)
  4. src/iter/iter.go

    			// Propagate panics and goexits from seq.
    			if panicValue != nil {
    				if panicValue == goexitPanicValue {
    					// Propagate runtime.Goexit from seq.
    					runtime.Goexit()
    				} else {
    					panic(panicValue)
    				}
    			}
    		}
    	}
    	return next, stop
    }
    
    // goexitPanicValue is a sentinel value indicating that an iterator
    // exited via runtime.Goexit.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:09:28 UTC 2024
    - 6.6K bytes
    - Viewed (0)
  5. src/runtime/stubs.go

    type neverCallThisFunction struct{}
    
    // goexit is the return stub at the top of every goroutine call stack.
    // Each goroutine stack is constructed as if goexit called the
    // goroutine's entry point function, so that when the entry point
    // function returns, it will return to goexit, which will call goexit1
    // to perform the actual exit.
    //
    // This function must never be called directly. Call goexit1 instead.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 20.2K bytes
    - Viewed (0)
  6. src/runtime/panic.go

    // If all other goroutines exit, the program crashes.
    func Goexit() {
    	// Create a panic object for Goexit, so we can recognize when it might be
    	// bypassed by a recover().
    	var p _panic
    	p.goexit = true
    
    	p.start(getcallerpc(), unsafe.Pointer(getcallersp()))
    	for {
    		fn, ok := p.nextDefer()
    		if !ok {
    			break
    		}
    		fn()
    	}
    
    	goexit1()
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 43.8K bytes
    - Viewed (0)
  7. src/runtime/crash_test.go

    	want := "no goroutines (main called runtime.Goexit) - deadlock!"
    	if !strings.Contains(output, want) {
    		t.Fatalf("output:\n%s\n\nwant output containing: %s", output, want)
    	}
    }
    
    func TestGoexitDefer(t *testing.T) {
    	c := make(chan struct{})
    	go func() {
    		defer func() {
    			r := recover()
    			if r != nil {
    				t.Errorf("non-nil recover during Goexit")
    			}
    			c <- struct{}{}
    		}()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 19:46:10 UTC 2024
    - 27K bytes
    - Viewed (0)
  8. src/testing/testing.go

    	c.Fail()
    
    	// Calling runtime.Goexit will exit the goroutine, which
    	// will run the deferred functions in this goroutine,
    	// which will eventually run the deferred lines in tRunner,
    	// which will signal to the test loop that this test is done.
    	//
    	// A previous version of this code said:
    	//
    	//	c.duration = ...
    	//	c.signal <- c.self
    	//	runtime.Goexit()
    	//
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:00:11 UTC 2024
    - 76.1K bytes
    - Viewed (0)
  9. src/testing/example.go

    // If the test is chatty/verbose, it'll print a success message to stdout.
    // If recovered is non-nil, it'll panic with that value.
    // If the test panicked with nil, or invoked runtime.Goexit, it'll be
    // made to fail and panic with errNilPanicOrGoexit
    func (eg *InternalExample) processRunResult(stdout string, timeSpent time.Duration, finished bool, recovered any) (passed bool) {
    	passed = true
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:00:11 UTC 2024
    - 2.8K bytes
    - Viewed (0)
  10. src/runtime/os_plan9.go

    	if ns == 0 {
    		return scratch
    	}
    	return ns
    }
    
    var goexits = []byte("go: exit ")
    var emptystatus = []byte("\x00")
    var exiting uint32
    
    func goexitsall(status *byte) {
    	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()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 10.3K bytes
    - Viewed (0)
Back to top