Hide details
Issue: Safety violation
ⓘ
Shared Variables
Output
Turn
ⓘ
Thread
Execution
PC
ibc$x
seats
1
T0: __init__()
Set
ibc$x
to
0
Set
seats
to
[ -1, -1, -1, -1, -1 ]
2
T4: thread(3)
3
T2: thread(1)
Set
ibc$x
to
1
4
T1: thread(0)
Set
ibc$x
to
2
5
T4: thread(3)
Set
ibc$x
to
3
6
T5: thread(4)
7
T1: thread(0)
Set
seats[0]
to
1
8
T2: thread(1)
Set
seats[1]
to
0
9
T3: thread(2)
Set
ibc$x
to
4
Set
seats[2]
to
3
10
T4: thread(3)
Set
seats[3]
to
0
11
T5: thread(4)
Set
ibc$x
to
5
Set
seats[4]
to
4
12
T6: finally()
Harmony bytecode
0
Frame __init__()
1
Sequential
2
Push 0
3
Store ibc$x
4
Jump 22
5
Frame book()
6
Load ibc$x
7
Push 4
8
2-ary ==
9
JumpCond False 14
10
Push 1
11
1-ary -
12
StoreVar seat
13
Jump 20
14
Load ibc$x
15
StoreVar seat
16
Load ibc$x
17
Push 1
18
2-ary +
19
Store ibc$x
20
ReturnOp(seat)
21
DelVar seat
22
Push ()
23
Push 1
24
1-ary -
25
2-ary ListAdd
26
Push 4
27
Push 1
28
2-ary +
29
2-ary *
30
Store seats
31
Jump 41
32
Frame thread(tid)
33
Push ?seats
34
LoadVar tid
35
DelVar tid
36
2-ary AddArg
37
Push ()
38
Apply PC(5)
39
Store
40
ReturnOp(result. None)
41
Push 0
42
Push 4
43
2-ary ..
44
Push 0
45
Cut(i)
46
JumpCond False 54
47
Push ?PC(32)
48
LoadVar i
49
DelVar i
50
2-ary AddArg
51
Push {:}
52
Spawn
53
Jump 45
54
DelVar i
55
Jump 89
56
Frame check()
57
Push True
58
StoreVar res
59
Push 0
60
Push 4
61
2-ary ..
62
Push 0
63
Cut(i)
64
JumpCond False 80
65
LoadVar res
66
DelVar res
67
JumpCond False 76
68
Push ?seats
69
LoadVar i
70
DelVar i
71
2-ary AddArg
72
Load
73
Push 4
74
2-ary <
75
Jump 78
76
DelVar i
77
Push False
78
StoreVar res
79
Jump 63
80
DelVar i
81
ReturnOp(res)
82
DelVar res
83
Jump 89
84
Frame finally()
85
Push ()
86
Apply PC(56)
87
Assert
88
ReturnOp(result. None)
89
Finally 84
90
ReturnOp(result. None)
91
DelVar result