forked from taskflow/taskflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconditional-tasking-pitfalls.dot
More file actions
56 lines (56 loc) · 1.67 KB
/
conditional-tasking-pitfalls.dot
File metadata and controls
56 lines (56 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
digraph Taskflow {
subgraph cluster_error1 {
label="error1: no source tasks"
e1A[label="A" shape=diamond color=black fillcolor=aquamarine style=filled];
e1B[label="B"];
e1C[label="C"];
e1A->e1A[style=dashed label="0"];
e1A->e1B[style=dashed label="1"];
e1A->e1C[style=dashed label="2"];
}
subgraph cluster_fix1 {
label="fix1: adds a source"
f1S[label="S"];
f1A[label="A" shape=diamond color=black fillcolor=aquamarine style=filled];
f1B[label="B"];
f1C[label="C"];
f1S->f1A;
f1A->f1A[style=dashed label="0"];
f1A->f1B[style=dashed label="1"];
f1A->f1C[style=dashed label="2"];
}
subgraph cluster_error2 {
label="errorf: race on D"
e2C[label="C" shape=diamond color=black fillcolor=aquamarine style=filled];
e2D[label="D"];
e2F[label="F"];
e2E[label="E"];
e2E->e2D;
e2C->e2D[style=dashed label="0"];
e2C->e2F[style=dashed label="1"];
}
subgraph cluster_fix2 {
label="fix2: adds an auxiliary task"
f2C[label="C" shape=diamond color=black fillcolor=aquamarine style=filled];
f2D[label="D"];
f2Daux[label="D-aux"]
f2F[label="F"];
f2E[label="E"];
f2E->f2D;
f2C->f2Daux[style=dashed label="0"];
f2C->f2F[style=dashed label="1"];
f2Daux->f2D
}
subgraph cluster_risky{
label="risky: X might be raced"
rP[label="P" shape=diamond color=black fillcolor=aquamarine style=filled];
rM[label="M" shape=diamond color=black fillcolor=aquamarine style=filled];
rQ[label="Q"]
rX[label="X"]
rN[label="N"]
rP->rX[style=dashed label="1"]
rM->rX[style=dashed label="0"]
rM->rN[style=dashed label="1"]
rP->rQ[style=dashed label="0"]
}
}