mirror of https://github.com/allinssl/allinssl
修复工作流中有并行分支时panic
parent
6d1b05e7c0
commit
f499afc060
|
@ -245,6 +245,7 @@ func RunNode(node *WorkflowNode, ctx *ExecutionContext) error {
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
errChan := make(chan error, len(node.ConditionNodes))
|
errChan := make(chan error, len(node.ConditionNodes))
|
||||||
for _, branch := range node.ConditionNodes {
|
for _, branch := range node.ConditionNodes {
|
||||||
|
branch.ChildNode.Config["fromNodeData"] = node.Config["fromNodeData"]
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(node *WorkflowNode) {
|
go func(node *WorkflowNode) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
@ -286,6 +287,9 @@ func RunNode(node *WorkflowNode, ctx *ExecutionContext) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if node.ChildNode != nil {
|
if node.ChildNode != nil {
|
||||||
|
if node.ChildNode.Config == nil {
|
||||||
|
node.ChildNode.Config = make(map[string]any)
|
||||||
|
}
|
||||||
fromNodeData, ok := ctx.GetOutput(node.Id)
|
fromNodeData, ok := ctx.GetOutput(node.Id)
|
||||||
if ok && fromNodeData != nil && node.ChildNode.Config["fromNodeData"] == nil {
|
if ok && fromNodeData != nil && node.ChildNode.Config["fromNodeData"] == nil {
|
||||||
node.ChildNode.Config["fromNodeData"] = fromNodeData
|
node.ChildNode.Config["fromNodeData"] = fromNodeData
|
||||||
|
|
Loading…
Reference in New Issue