MCPcopy Create free account
hub / github.com/cel-expr/cel-go / SetContext

Method SetContext

interpreter/frame.go:98–114  ·  view source on GitHub ↗

SetContext sets the context for the execution frame.

(ctx context.Context, interruptCheckFrequency uint)

Source from the content-addressed store, hash-verified

96
97// SetContext sets the context for the execution frame.
98func (f *ExecutionFrame) SetContext(ctx context.Context, interruptCheckFrequency uint) error {
99 if f.parent != nil {
100 return errors.New("SetContext() called on child frame")
101 }
102 if f.ctx != nil {
103 return errors.New("SetContext() called more than once")
104 }
105 f.ctx = evalContextPool.Get().(*evalContext)
106 f.ctx.ctx, f.ctx.cancel = context.WithCancel(ctx)
107 f.ctx.asyncCalls = asyncCallStateTrackerPool.create()
108 f.ctx.gate = &asyncGate{}
109 f.ctx.interrupt = ctx.Done()
110 f.ctx.interruptCheckFrequency = interruptCheckFrequency
111 f.ctx.interruptCheckCount.Store(0)
112 f.ctx.interrupted.Store(false)
113 return nil
114}
115
116// Close releases the resources held by the execution frame and returns it to the pool.
117func (f *ExecutionFrame) Close() {

Callers 11

newTestFrameFunction · 0.95
TestFrameCheckInterruptFunction · 0.80
TestFrameCloseFunction · 0.80
TestFrameDoubleCloseFunction · 0.80
TestFrameSetContextFunction · 0.80
ContextEvalMethod · 0.80
newAsyncFrameMethod · 0.80

Calls 3

NewMethod · 0.80
GetMethod · 0.65
createMethod · 0.45

Tested by 9

newTestFrameFunction · 0.76
TestFrameCheckInterruptFunction · 0.64
TestFrameCloseFunction · 0.64
TestFrameDoubleCloseFunction · 0.64
TestFrameSetContextFunction · 0.64