MCPcopy Create free account
hub / github.com/GongShichen/LuminaCode / scheduleIdleTTLLocked

Method scheduleIdleTTLLocked

agent/task_runtime.go:780–809  ·  view source on GitHub ↗
(taskID string)

Source from the content-addressed store, hash-verified

778}
779
780func (rt *AgentTaskRuntime) scheduleIdleTTLLocked(taskID string) {
781 rt.cancelIdleTTLLocked(taskID)
782 record := rt.records[taskID]
783 if record == nil || record.Status != "idle" {
784 return
785 }
786 ctx, cancel := context.WithCancel(context.Background())
787 rt.idleTTLCancels[taskID] = cancel
788 go func() {
789 select {
790 case <-ctx.Done():
791 return
792 case <-time.After(IdleTTLDuration):
793 }
794 rt.mu.Lock()
795 defer rt.mu.Unlock()
796 delete(rt.idleTTLCancels, taskID)
797 record := rt.records[taskID]
798 if record == nil || record.Status != "idle" {
799 return
800 }
801 record.Status = "completed"
802 record.TerminationReason = "idle_ttl_expired"
803 record.UpdatedAt = nowSeconds()
804 rt.enqueueLocked(record, "Reusable worker expired after idling.", record.ResultText)
805 delete(rt.workers, taskID)
806 delete(rt.workerSpecs, taskID)
807 rt.scheduleTerminalRecordCleanupLocked(taskID)
808 }()
809}
810
811func (rt *AgentTaskRuntime) cancelIdleTTLLocked(taskID string) {
812 if cancel := rt.idleTTLCancels[taskID]; cancel != nil {

Callers 1

finishReusableIdleMethod · 0.95

Calls 4

cancelIdleTTLLockedMethod · 0.95
enqueueLockedMethod · 0.95
nowSecondsFunction · 0.70

Tested by

no test coverage detected