MCPcopy
hub / github.com/netdata/netdata / trySetInvocationState

Method trySetInvocationState

src/go/plugin/framework/functions/manager.go:364–388  ·  view source on GitHub ↗
(uid string, state invocationState, cancel context.CancelFunc, scheduleKey string)

Source from the content-addressed store, hash-verified

362}
363
364func (m *Manager) trySetInvocationState(uid string, state invocationState, cancel context.CancelFunc, scheduleKey string) invocationAdmission {
365 if uid == "" {
366 return invocationAdmissionInvalid
367 }
368
369 m.invStateMux.Lock()
370 defer m.invStateMux.Unlock()
371
372 m.pruneExpiredTombstonesLocked(time.Now())
373
374 if _, ok := m.tombstones[uid]; ok {
375 return invocationAdmissionDuplicateTombstone
376 }
377
378 if _, ok := m.invState[uid]; ok {
379 return invocationAdmissionDuplicateActive
380 }
381 m.invState[uid] = &invocationRecord{
382 state: state,
383 cancel: cancel,
384 scheduleKey: scheduleKey,
385 }
386 m.observeInvocationsLocked()
387 return invocationAdmissionAccepted
388}
389
390func (m *Manager) setAwaitingResultState(uid string, fnTimeout time.Duration) {
391 if uid == "" {

Callers 2

dispatchInvocationMethod · 0.95
TestManager_tryFinalizeFunction · 0.80

Calls 4

LockMethod · 0.80
UnlockMethod · 0.80

Tested by 1

TestManager_tryFinalizeFunction · 0.64