github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/trace/v2/event/requirements.go (about)

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package event
     6  
     7  // SchedReqs is a set of constraints on what the scheduling
     8  // context must look like.
     9  type SchedReqs struct {
    10  	Thread    Constraint
    11  	Proc      Constraint
    12  	Goroutine Constraint
    13  }
    14  
    15  // Constraint represents a various presence requirements.
    16  type Constraint uint8
    17  
    18  const (
    19  	MustNotHave Constraint = iota
    20  	MayHave
    21  	MustHave
    22  )
    23  
    24  // UserGoReqs is a common requirement among events that are running
    25  // or are close to running user code.
    26  var UserGoReqs = SchedReqs{Thread: MustHave, Proc: MustHave, Goroutine: MustHave}