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 = {}
|
sigs = {}
|
||||||
node = ""
|
node = ""
|
||||||
thread = ""
|
thread = ""
|
||||||
|
multi_thread = False
|
||||||
for edge in edges:
|
for edge in edges:
|
||||||
if edge[0][0] == name:
|
if edge[0][0] == name:
|
||||||
sigs[edge[0][1]] = edge[0][2]
|
sigs[edge[0][1]] = edge[0][2]
|
||||||
if not thread:
|
if not thread:
|
||||||
thread = edge[-1]
|
thread = edge[-1]
|
||||||
|
elif thread != edge[-1]:
|
||||||
|
multi_thread = True
|
||||||
if edge[1][0] == name:
|
if edge[1][0] == name:
|
||||||
sigs[edge[1][1]] = edge[1][2]
|
sigs[edge[1][1]] = edge[1][2]
|
||||||
if not thread:
|
if not thread:
|
||||||
thread = edge[-1]
|
thread = edge[-1]
|
||||||
|
elif thread != edge[-1]:
|
||||||
|
multi_thread = True
|
||||||
if sigs:
|
if sigs:
|
||||||
if cls == "GAMDataSource":
|
if cls == "GAMDataSource":
|
||||||
node, edges = __process_gamds__(name, sigs, edges)
|
node, edges = __process_gamds__(name, sigs, edges)
|
||||||
@@ -338,7 +343,7 @@ def __process_ds__(name, obj, edges):
|
|||||||
sig_type = sigs[sig_name]
|
sig_type = sigs[sig_name]
|
||||||
node += f"<{__sig_name__(sig_name)}> {sig_name} ({__type_to_str__(sig_type)})"
|
node += f"<{__sig_name__(sig_name)}> {sig_name} ({__type_to_str__(sig_type)})"
|
||||||
node += '", color=blue];\n'
|
node += '", color=blue];\n'
|
||||||
if cls != "RealTimeThreadAsyncBridge" and node:
|
if not multi_thread and node:
|
||||||
node = f"subgraph cluster_{thread}" + "{" + node + "};"
|
node = f"subgraph cluster_{thread}" + "{" + node + "};"
|
||||||
return node, edges
|
return node, edges
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user