feat: auto identify multithread datasources
This commit is contained in:
Binary file not shown.
+6
-1
@@ -300,15 +300,20 @@ def __process_ds__(name, obj, edges):
|
||||
sigs = {}
|
||||
node = ""
|
||||
thread = ""
|
||||
multi_thread = False
|
||||
for edge in edges:
|
||||
if edge[0][0] == name:
|
||||
sigs[edge[0][1]] = edge[0][2]
|
||||
if not thread:
|
||||
thread = edge[-1]
|
||||
elif thread != edge[-1]:
|
||||
multi_thread = True
|
||||
if edge[1][0] == name:
|
||||
sigs[edge[1][1]] = edge[1][2]
|
||||
if not thread:
|
||||
thread = edge[-1]
|
||||
elif thread != edge[-1]:
|
||||
multi_thread = True
|
||||
if sigs:
|
||||
if cls == "GAMDataSource":
|
||||
node, edges = __process_gamds__(name, sigs, edges)
|
||||
@@ -338,7 +343,7 @@ def __process_ds__(name, obj, edges):
|
||||
sig_type = sigs[sig_name]
|
||||
node += f"<{__sig_name__(sig_name)}> {sig_name} ({__type_to_str__(sig_type)})"
|
||||
node += '", color=blue];\n'
|
||||
if cls != "RealTimeThreadAsyncBridge" and node:
|
||||
if not multi_thread and node:
|
||||
node = f"subgraph cluster_{thread}" + "{" + node + "};"
|
||||
return node, edges
|
||||
|
||||
|
||||
Reference in New Issue
Block a user