iop/apps/node/internal/node/run_manager.go
toki d764adb390 chore: agent-task 변경 사항 반영
- edge node store 및 console 업데이트
- node adapters(cli, ollama, vllm, mock) 리팩토링
- node router, run_manager, store 개선
- proto 파일(control.proto, runtime.proto) 및 생성 코드 업데이트
- config 업데이트
2026-05-10 20:41:33 +09:00

47 lines
740 B
Go

package node
import (
"context"
"sync"
)
type runHandle struct {
runID string
adapter string
target string
sessionID string
cancel context.CancelFunc
done chan struct{}
}
type runManager struct {
mu sync.RWMutex
runs map[string]*runHandle
}
func newRunManager() *runManager {
return &runManager{runs: make(map[string]*runHandle)}
}
func (m *runManager) register(h *runHandle) {
m.mu.Lock()
defer m.mu.Unlock()
m.runs[h.runID] = h
}
func (m *runManager) deregister(runID string) {
m.mu.Lock()
defer m.mu.Unlock()
delete(m.runs, runID)
}
func (m *runManager) cancelRun(runID string) bool {
m.mu.RLock()
h, ok := m.runs[runID]
m.mu.RUnlock()
if !ok {
return false
}
h.cancel()
return true
}