Add team tasks: several agents in one worktree sharing a board
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
)
|
||||
|
||||
type snapRequest struct {
|
||||
target snapTarget
|
||||
trigger api.SnapshotTrigger
|
||||
seq int64
|
||||
review bool
|
||||
@@ -61,7 +62,7 @@ func (m *Manager) snapshotSoon(t snapTarget, trigger api.SnapshotTrigger, seq in
|
||||
m.dropRequest(t.taskID, &snapRequest{review: review})
|
||||
return
|
||||
}
|
||||
req := &snapRequest{trigger: trigger, seq: seq, review: review, force: force}
|
||||
req := &snapRequest{target: t, trigger: trigger, seq: seq, review: review, force: force}
|
||||
if st.running {
|
||||
if p := st.pending; p != nil && p.force {
|
||||
req.force = true
|
||||
@@ -72,11 +73,13 @@ func (m *Manager) snapshotSoon(t snapTarget, trigger api.SnapshotTrigger, seq in
|
||||
return
|
||||
}
|
||||
st.running = true
|
||||
go m.runSnapshots(t, st, req)
|
||||
go m.runSnapshots(st, req)
|
||||
}
|
||||
|
||||
func (m *Manager) runSnapshots(t snapTarget, st *snapState, req *snapRequest) {
|
||||
func (m *Manager) runSnapshots(st *snapState, req *snapRequest) {
|
||||
for {
|
||||
t := req.target
|
||||
unlock := m.lockTask(t.taskID)
|
||||
st.mu.Lock()
|
||||
m.snapMu.Lock()
|
||||
closed := st.closed
|
||||
@@ -96,6 +99,7 @@ func (m *Manager) runSnapshots(t snapTarget, st *snapState, req *snapRequest) {
|
||||
m.dropRequest(t.taskID, req)
|
||||
}
|
||||
st.mu.Unlock()
|
||||
unlock()
|
||||
|
||||
m.snapMu.Lock()
|
||||
req = st.pending
|
||||
|
||||
Reference in New Issue
Block a user