mirror of https://github.com/allinssl/allinssl
修复条件分支和并行分支下的并行分支panic
parent
f499afc060
commit
b4e04a3d2e
|
@ -245,7 +245,12 @@ 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"]
|
if branch.ChildNode != nil {
|
||||||
|
if branch.ChildNode.ChildNode == nil {
|
||||||
|
branch.ChildNode.Config = make(map[string]any)
|
||||||
|
}
|
||||||
|
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()
|
||||||
|
@ -271,6 +276,9 @@ func RunNode(node *WorkflowNode, ctx *ExecutionContext) error {
|
||||||
for _, branch := range node.ConditionNodes {
|
for _, branch := range node.ConditionNodes {
|
||||||
if branch.Config["type"] == string(lastStatus) {
|
if branch.Config["type"] == string(lastStatus) {
|
||||||
if branch.ChildNode != nil {
|
if branch.ChildNode != nil {
|
||||||
|
if branch.ChildNode.Config == nil {
|
||||||
|
branch.ChildNode.Config = make(map[string]any)
|
||||||
|
}
|
||||||
fromNodeData, ok := ctx.GetOutput(node.Config["fromNodeId"].(string))
|
fromNodeData, ok := ctx.GetOutput(node.Config["fromNodeId"].(string))
|
||||||
if !ok {
|
if !ok {
|
||||||
fromNodeData = nil
|
fromNodeData = nil
|
||||||
|
|
Loading…
Reference in New Issue