Issue: Safety violation
Shared Variables
Output
Turn
Thread
Instructions Executed
PC
alloc$next
alloc$pool
q
0
1
lock
next
value
lock
next
value
lock
next
value
1
T0: __init__()
2
T1: put_test(1)
3
T2: put_test(2)
4
T3: get_test(1)
5
T2: put_test(2)
0
Frame __init__()
1
Jump 491
2
Frame subseq(s, b, e)
3
DelVar result
4
Push ()
5
StoreVar $accu3
6
LoadVar b
7
DelVar b
8
LoadVar e
9
DelVar e
10
Push 1
11
2-ary -
12
2-ary ..
13
Push 0
14
Cut(x)
15
JumpCond False 26
16
LoadVar $accu3
17
DelVar $accu3
18
LoadVar s
19
LoadVar x
20
DelVar x
21
2-ary Closure
22
Load
23
2-ary ListAdd
24
StoreVar $accu3
25
Jump 14
26
DelVar s
27
DelVar x
28
LoadVar $accu3
29
DelVar $accu3
30
StoreVar result
31
ReturnOp(result)
32
Jump 491
33
Frame append(s, e)
34
DelVar result
35
LoadVar s
36
DelVar s
37
Push ()
38
LoadVar e
39
DelVar e
40
2-ary ListAdd
41
2-ary +
42
StoreVar result
43
ReturnOp(result)
44
Jump 491
45
Frame head(s)
46
DelVar result
47
LoadVar s
48
DelVar s
49
Push 0
50
2-ary Closure
51
Load
52
StoreVar result
53
ReturnOp(result)
54
Jump 491
55
Frame tail(s)
56
DelVar result
57
LoadVar s
58
DelVar s
59
StoreVar result
60
Push ?result
61
Push 0
62
2-ary AddArg
63
DelVar [result]
64
ReturnOp(result)
65
Jump 491
66
Frame values(d)
67
DelVar result
68
Push ()
69
StoreVar $accu52
70
LoadVar d
71
DelVar d
72
Push 0
73
Cut(_, v)
74
DelVar _
75
JumpCond False 83
76
LoadVar $accu52
77
DelVar $accu52
78
LoadVar v
79
DelVar v
80
2-ary ListAdd
81
StoreVar $accu52
82
Jump 73
83
DelVar v
84
LoadVar $accu52
85
DelVar $accu52
86
StoreVar result
87
ReturnOp(result)
88
Jump 491
89
Frame items(d)
90
DelVar result
91
Push ()
92
StoreVar $accu68
93
LoadVar d
94
DelVar d
95
Push 0
96
Cut(k, v)
97
JumpCond False 110
98
LoadVar $accu68
99
DelVar $accu68
100
Push ()
101
LoadVar k
102
DelVar k
103
2-ary ListAdd
104
LoadVar v
105
DelVar v
106
2-ary ListAdd
107
2-ary ListAdd
108
StoreVar $accu68
109
Jump 96
110
DelVar k
111
DelVar v
112
LoadVar $accu68
113
DelVar $accu68
114
StoreVar result
115
ReturnOp(result)
116
Jump 491
117
Frame qsort(a)
118
LoadVar a
119
Push ()
120
2-ary ==
121
JumpCond False 126
122
DelVar a
123
Push ()
124
StoreVar sorted_list
125
Jump 192
126
Push ()
127
LoadVar a
128
Apply PC(45)
129
2-ary ListAdd
130
LoadVar a
131
DelVar a
132
Apply PC(55)
133
2-ary ListAdd
134
StoreVar (pivot, rest)
135
Push ()
136
StoreVar $accu103
137
LoadVar rest
138
Push 0
139
DelVar v
140
Cut(v)
141
JumpCond False 153
142
LoadVar v
143
LoadVar pivot
144
2-ary <
145
JumpCond False 139
146
LoadVar $accu103
147
DelVar $accu103
148
LoadVar v
149
DelVar v
150
2-ary ListAdd
151
StoreVar $accu103
152
Jump 139
153
DelVar v
154
LoadVar $accu103
155
DelVar $accu103
156
StoreVar lower
157
Push ()
158
StoreVar $accu120
159
LoadVar rest
160
DelVar rest
161
Push 0
162
DelVar v
163
Cut(v)
164
JumpCond False 176
165
LoadVar v
166
LoadVar pivot
167
2-ary >=
168
JumpCond False 162
169
LoadVar $accu120
170
DelVar $accu120
171
LoadVar v
172
DelVar v
173
2-ary ListAdd
174
StoreVar $accu120
175
Jump 162
176
DelVar v
177
LoadVar $accu120
178
DelVar $accu120
179
StoreVar higher
180
LoadVar lower
181
DelVar lower
182
Apply PC(117)
183
Push ()
184
LoadVar pivot
185
DelVar pivot
186
2-ary ListAdd
187
LoadVar higher
188
DelVar higher
189
Apply PC(117)
190
3-ary +
191
StoreVar sorted_list
192
ReturnOp(sorted_list)
193
DelVar sorted_list
194
Jump 491
195
Frame index(d, e)
196
Push 0
197
StoreVar i
198
LoadVar d
199
LoadVar i
200
2-ary Closure
201
Load
202
LoadVar e
203
2-ary !=
204
JumpCond False 211
205
LoadVar i
206
DelVar i
207
Push 1
208
2-ary +
209
StoreVar i
210
Jump 198
211
DelVar d
212
DelVar e
213
ReturnOp(i)
214
DelVar i
215
Jump 491
216
Frame startswith(d, prefix)
217
DelVar result
218
LoadVar prefix
219
1-ary len
220
LoadVar d
221
1-ary len
222
2-ary <=
223
JumpCond False 257
224
Push ()
225
StoreVar $accu172
226
Push 0
227
LoadVar prefix
228
1-ary len
229
Push 1
230
2-ary -
231
2-ary ..
232
Push 0
233
Cut(i)
234
JumpCond False 250
235
LoadVar $accu172
236
DelVar $accu172
237
LoadVar d
238
LoadVar i
239
2-ary Closure
240
Load
241
LoadVar prefix
242
LoadVar i
243
DelVar i
244
2-ary Closure
245
Load
246
2-ary ==
247
2-ary ListAdd
248
StoreVar $accu172
249
Jump 233
250
DelVar d
251
DelVar i
252
DelVar prefix
253
LoadVar $accu172
254
DelVar $accu172
255
1-ary all
256
Jump 260
257
DelVar d
258
DelVar prefix
259
Push False
260
StoreVar result
261
ReturnOp(result)
262
Jump 491
263
Frame foldl(d, f, z)
264
DelVar result
265
LoadVar z
266
DelVar z
267
StoreVar result
268
LoadVar d
269
DelVar d
270
Push 0
271
Cut(e)
272
JumpCond False 285
273
LoadVar f
274
Push ()
275
LoadVar result
276
DelVar result
277
2-ary ListAdd
278
LoadVar e
279
DelVar e
280
2-ary ListAdd
281
2-ary Closure
282
Load
283
StoreVar result
284
Jump 271
285
DelVar e
286
DelVar f
287
ReturnOp(result)
288
Jump 491
289
Frame foldr(d, f, z)
290
DelVar result
291
LoadVar d
292
1-ary len
293
Push 0
294
2-ary ==
295
JumpCond False 301
296
DelVar d
297
DelVar f
298
LoadVar z
299
DelVar z
300
Jump 323
301
LoadVar f
302
Push ()
303
LoadVar d
304
Push 0
305
2-ary Closure
306
Load
307
2-ary ListAdd
308
Push ()
309
LoadVar d
310
DelVar d
311
Apply PC(55)
312
2-ary ListAdd
313
LoadVar f
314
DelVar f
315
2-ary ListAdd
316
LoadVar z
317
DelVar z
318
2-ary ListAdd
319
Apply PC(289)
320
2-ary ListAdd
321
2-ary Closure
322
Load
323
StoreVar result
324
ReturnOp(result)
325
Jump 491
326
Frame reduce(f, d, z)
327
DelVar result
328
Push ()
329
LoadVar d
330
DelVar d
331
2-ary ListAdd
332
LoadVar f
333
DelVar f
334
2-ary ListAdd
335
LoadVar z
336
DelVar z
337
2-ary ListAdd
338
Apply PC(263)
339
StoreVar result
340
ReturnOp(result)
341
Jump 491
342
Frame permuted(s)
343
Push ()
344
StoreVar perm
345
LoadVar s
346
DelVar s
347
StoreVar c
348
LoadVar c
349
Push {}
350
2-ary !=
351
JumpCond False 371
352
LoadVar c
353
Choose
354
StoreVar e
355
LoadVar perm
356
DelVar perm
357
Push ()
358
LoadVar e
359
2-ary ListAdd
360
2-ary +
361
StoreVar perm
362
LoadVar c
363
DelVar c
364
Push {}
365
LoadVar e
366
DelVar e
367
2-ary SetAdd
368
2-ary -
369
StoreVar c
370
Jump 348
371
DelVar c
372
ReturnOp(perm)
373
DelVar perm
374
Jump 491
375
Frame filter(cond, s)
376
Push ()
377
StoreVar $accu292
378
LoadVar s
379
DelVar s
380
Push 0
381
DelVar e
382
Cut(e)
383
JumpCond False 396
384
LoadVar cond
385
LoadVar e
386
2-ary Closure
387
Load
388
JumpCond False 381
389
LoadVar $accu292
390
DelVar $accu292
391
LoadVar e
392
DelVar e
393
2-ary ListAdd
394
StoreVar $accu292
395
Jump 381
396
DelVar cond
397
DelVar e
398
LoadVar $accu292
399
DelVar $accu292
400
StoreVar t
401
ReturnOp(t)
402
DelVar t
403
Jump 491
404
Frame map(f, s)
405
Push ()
406
StoreVar $accu313
407
LoadVar s
408
DelVar s
409
Push 0
410
Cut(e)
411
JumpCond False 422
412
LoadVar $accu313
413
DelVar $accu313
414
LoadVar f
415
LoadVar e
416
DelVar e
417
2-ary Closure
418
Load
419
2-ary ListAdd
420
StoreVar $accu313
421
Jump 410
422
DelVar e
423
DelVar f
424
LoadVar $accu313
425
DelVar $accu313
426
StoreVar t
427
ReturnOp(t)
428
DelVar t
429
Jump 491
430
Frame empty()
431
Push {:}
432
StoreVar bg
433
ReturnOp(bg)
434
DelVar bg
435
Jump 491
436
Frame fromSet(s)
437
Push {:}
438
StoreVar $accu337
439
LoadVar s
440
DelVar s
441
Push 0
442
Cut(elt)
443
JumpCond False 452
444
LoadVar $accu337
445
DelVar $accu337
446
LoadVar elt
447
DelVar elt
448
Push 1
449
3-ary DictAdd
450
StoreVar $accu337
451
Jump 442
452
DelVar elt
453
LoadVar $accu337
454
DelVar $accu337
455
StoreVar bg
456
ReturnOp(bg)
457
DelVar bg
458
Jump 491
459
Frame fromList(a)
460
Push {:}
461
StoreVar bg
462
LoadVar a
463
DelVar a
464
Push 0
465
Cut(v)
466
JumpCond False 488
467
LoadVar v
468
LoadVar bg
469
2-ary in
470
JumpCond False 481
471
Push ?bg
472
LoadVar v
473
DelVar v
474
2-ary AddArg
475
Dup
476
Load
477
Push 1
478
2-ary +
479
StoreVar [bg]
480
Jump 465
481
Push ?bg
482
LoadVar v
483
DelVar v
484
2-ary AddArg
485
Push 1
486
StoreVar [bg]
487
Jump 465
488
DelVar v
489
ReturnOp(bg)
490
DelVar bg
491
Push PC(494)
492
Builtin(bag$multiplicity)
493
Jump 513
494
Frame multiplicity(bg, elt)
495
LoadVar elt
496
LoadVar bg
497
2-ary in
498
JumpCond False 507
499
LoadVar bg
500
DelVar bg
501
LoadVar elt
502
DelVar elt
503
2-ary Closure
504
Load
505
StoreVar count
506
Jump 511
507
DelVar bg
508
DelVar elt
509
Push 0
510
StoreVar count
511
ReturnOp(count)
512
DelVar count
513
Push PC(516)
514
Builtin(bag$size)
515
Jump 535
516
Frame size(bg)
517
Push 0
518
StoreVar count
519
LoadVar bg
520
DelVar bg
521
Push 0
522
Cut(_, c)
523
DelVar _
524
JumpCond False 532
525
LoadVar count
526
DelVar count
527
LoadVar c
528
DelVar c
529
2-ary +
530
StoreVar count
531
Jump 522
532
DelVar c
533
ReturnOp(count)
534
DelVar count
535
Push PC(538)
536
Builtin(bag$bmin)
537
Jump 554
538
Frame bmin(bg)
539
AtomicInc(lazy)
540
ReadonlyInc
541
LoadVar bg
542
Push {:}
543
2-ary !=
544
Assert
545
ReadonlyDec
546
AtomicDec
547
LoadVar bg
548
DelVar bg
549
1-ary keys
550
1-ary min
551
StoreVar count
552
ReturnOp(count)
553
DelVar count
554
Push PC(557)
555
Builtin(bag$bmax)
556
Jump 582
557
Frame bmax(bg)
558
AtomicInc(lazy)
559
ReadonlyInc
560
LoadVar bg
561
Push {:}
562
2-ary !=
563
Assert
564
ReadonlyDec
565
AtomicDec
566
LoadVar bg
567
DelVar bg
568
1-ary keys
569
1-ary max
570
StoreVar count
571
ReturnOp(count)
572
DelVar count
573
Jump 582
574
Frame bchoose(bg)
575
LoadVar bg
576
DelVar bg
577
1-ary keys
578
Choose
579
StoreVar elt
580
ReturnOp(elt)
581
DelVar elt
582
Push PC(585)
583
Builtin(bag$add)
584
Jump 611
585
Frame add(bg, elt)
586
DelVar result
587
LoadVar bg
588
DelVar bg
589
StoreVar result
590
LoadVar elt
591
LoadVar result
592
2-ary in
593
JumpCond False 604
594
Push ?result
595
LoadVar elt
596
DelVar elt
597
2-ary AddArg
598
Dup
599
Load
600
Push 1
601
2-ary +
602
StoreVar [result]
603
Jump 610
604
Push ?result
605
LoadVar elt
606
DelVar elt
607
2-ary AddArg
608
Push 1
609
StoreVar [result]
610
ReturnOp(result)
611
Push PC(614)
612
Builtin(bag$remove)
613
Jump 1095
614
Frame remove(bg, elt)
615
DelVar result
616
LoadVar bg
617
DelVar bg
618
StoreVar result
619
LoadVar elt
620
LoadVar result
621
2-ary in
622
JumpCond False 654
623
AtomicInc(lazy)
624
ReadonlyInc
625
LoadVar result
626
LoadVar elt
627
2-ary Closure
628
Load
629
Push 0
630
2-ary >
631
Assert
632
ReadonlyDec
633
AtomicDec
634
Push ?result
635
LoadVar elt
636
2-ary AddArg
637
Dup
638
Load
639
Push 1
640
2-ary -
641
StoreVar [result]
642
LoadVar result
643
LoadVar elt
644
2-ary Closure
645
Load
646
Push 0
647
2-ary ==
648
JumpCond False 654
649
Push ?result
650
LoadVar elt
651
DelVar elt
652
2-ary AddArg
653
DelVar [result]
654
DelVar elt
655
ReturnOp(result)
656
Jump 1095
657
Frame combinations(bg, k)
658
DelVar result
659
LoadVar k
660
Push 0
661
2-ary ==
662
JumpCond False 670
663
DelVar bg
664
DelVar k
665
Push {}
666
Push {:}
667
2-ary SetAdd
668
StoreVar result
669
Jump 745
670
LoadVar bg
671
Apply PC(516)
672
StoreVar n
673
LoadVar k
674
LoadVar n
675
2-ary >
676
JumpCond False 683
677
DelVar bg
678
DelVar k
679
DelVar n
680
Push {}
681
StoreVar result
682
Jump 745
683
LoadVar k
684
LoadVar n
685
DelVar n
686
2-ary ==
687
JumpCond False 695
688
DelVar k
689
Push {}
690
LoadVar bg
691
DelVar bg
692
2-ary SetAdd
693
StoreVar result
694
Jump 745
695
LoadVar bg
696
Apply PC(538)
697
StoreVar hd
698
Push ()
699
LoadVar bg
700
DelVar bg
701
2-ary ListAdd
702
LoadVar hd
703
2-ary ListAdd
704
Apply PC(614)
705
StoreVar tl
706
Push {}
707
StoreVar $accu560
708
Push ()
709
LoadVar tl
710
2-ary ListAdd
711
LoadVar k
712
Push 1
713
2-ary -
714
2-ary ListAdd
715
Apply PC(657)
716
Push 0
717
Cut(x)
718
JumpCond False 731
719
LoadVar $accu560
720
DelVar $accu560
721
Push ()
722
LoadVar x
723
DelVar x
724
2-ary ListAdd
725
LoadVar hd
726
2-ary ListAdd
727
Apply PC(585)
728
2-ary SetAdd
729
StoreVar $accu560
730
Jump 717
731
DelVar hd
732
DelVar x
733
LoadVar $accu560
734
DelVar $accu560
735
Push ()
736
LoadVar tl
737
DelVar tl
738
2-ary ListAdd
739
LoadVar k
740
DelVar k
741
2-ary ListAdd
742
Apply PC(657)
743
2-ary |
744
StoreVar result
745
ReturnOp(result)
746
Jump 1095
747
Frame atomic_load(p)
748
AtomicInc(eager)
749
LoadVar p
750
DelVar p
751
Load
752
StoreVar current
753
AtomicDec
754
ReturnOp(current)
755
DelVar current
756
Jump 1095
757
Frame atomic_store(p, v)
758
AtomicInc(eager)
759
LoadVar p
760
DelVar p
761
LoadVar v
762
DelVar v
763
Store
764
AtomicDec
765
ReturnOp(result. None)
766
Jump 1095
767
Frame tas(lk)
768
AtomicInc(eager)
769
LoadVar lk
770
Load
771
StoreVar oldvalue
772
LoadVar lk
773
DelVar lk
774
Push True
775
Store
776
AtomicDec
777
ReturnOp(oldvalue)
778
DelVar oldvalue
779
Jump 1095
780
Frame cas(p, old, new)
781
AtomicInc(eager)
782
LoadVar p
783
Load
784
LoadVar old
785
DelVar old
786
2-ary ==
787
StoreVar success
788
LoadVar success
789
JumpCond False 795
790
LoadVar p
791
DelVar p
792
LoadVar new
793
DelVar new
794
Store
795
DelVar new
796
DelVar p
797
AtomicDec
798
ReturnOp(success)
799
DelVar success
800
Jump 1095
801
Frame BinSema(initial)
802
AtomicInc(lazy)
803
ReadonlyInc
804
LoadVar initial
805
Push {}
806
Push False
807
2-ary SetAdd
808
Push True
809
2-ary SetAdd
810
2-ary in
811
Assert
812
ReadonlyDec
813
AtomicDec
814
LoadVar initial
815
DelVar initial
816
StoreVar sema
817
ReturnOp(sema)
818
DelVar sema
819
Jump 1095
820
Frame Lock()
821
DelVar result
822
Push False
823
Apply PC(801)
824
StoreVar result
825
ReturnOp(result)
826
Jump 1095
827
Frame acquired(binsema)
828
DelVar result
829
LoadVar binsema
830
DelVar binsema
831
Load
832
StoreVar result
833
ReturnOp(result)
834
Jump 1095
835
Frame held(binsema)
836
DelVar result
837
LoadVar binsema
838
DelVar binsema
839
Load
840
StoreVar result
841
ReturnOp(result)
842
Jump 1095
843
Frame acquire(binsema)
844
AtomicInc(eager)
845
ReadonlyInc
846
LoadVar binsema
847
Load
848
1-ary not
849
JumpCond False 851
850
Jump 854
851
ReadonlyDec
852
AtomicDec
853
Jump 844
854
ReadonlyDec
855
LoadVar binsema
856
DelVar binsema
857
Push True
858
Store
859
AtomicDec
860
ReturnOp(result. None)
861
Jump 1095
862
Frame release(binsema)
863
AtomicInc(eager)
864
AtomicInc(lazy)
865
ReadonlyInc
866
LoadVar binsema
867
Load
868
Push "release(): lock not owned"
869
Assert2
870
ReadonlyDec
871
AtomicDec
872
LoadVar binsema
873
DelVar binsema
874
Push False
875
Store
876
AtomicDec
877
ReturnOp(result. None)
878
Jump 1095
879
Frame Condition()
880
DelVar result
881
Push PC(430)
882
Push ()
883
2-ary Closure
884
Load
885
StoreVar result
886
ReturnOp(result)
887
Jump 1095
888
Frame wait(c, lk)
889
Push 0
890
StoreVar cnt
891
DelVar cnt
892
Push ()
893
Save
894
Continue
895
StoreVar ((), ctx)
896
AtomicInc(eager)
897
Push PC(494)
898
Push ()
899
LoadVar c
900
Load
901
2-ary ListAdd
902
LoadVar ctx
903
2-ary ListAdd
904
2-ary Closure
905
Load
906
StoreVar cnt
907
LoadVar c
908
Push PC(585)
909
Push ()
910
LoadVar c
911
Load
912
2-ary ListAdd
913
LoadVar ctx
914
2-ary ListAdd
915
2-ary Closure
916
Load
917
Store
918
LoadVar lk
919
Push False
920
Store
921
AtomicDec
922
AtomicInc(eager)
923
ReadonlyInc
924
LoadVar lk
925
Load
926
1-ary not
927
JumpCond False 940
928
Push PC(494)
929
Push ()
930
LoadVar c
931
Load
932
2-ary ListAdd
933
LoadVar ctx
934
2-ary ListAdd
935
2-ary Closure
936
Load
937
LoadVar cnt
938
2-ary <=
939
Jump 941
940
Push False
941
JumpCond False 946
942
DelVar c
943
DelVar cnt
944
DelVar ctx
945
Jump 949
946
ReadonlyDec
947
AtomicDec
948
Jump 922
949
ReadonlyDec
950
LoadVar lk
951
DelVar lk
952
Push True
953
Store
954
AtomicDec
955
ReturnOp(result. None)
956
Jump 1095
957
Frame notify(c)
958
AtomicInc(eager)
959
LoadVar c
960
Load
961
Push PC(430)
962
Push ()
963
2-ary Closure
964
Load
965
2-ary !=
966
JumpCond False 983
967
LoadVar c
968
Push PC(614)
969
Push ()
970
LoadVar c
971
Load
972
2-ary ListAdd
973
Push PC(574)
974
LoadVar c
975
DelVar c
976
Load
977
2-ary Closure
978
Load
979
2-ary ListAdd
980
2-ary Closure
981
Load
982
Store
983
DelVar c
984
AtomicDec
985
ReturnOp(result. None)
986
Jump 1095
987
Frame notifyAll(c)
988
AtomicInc(eager)
989
LoadVar c
990
DelVar c
991
Push PC(430)
992
Push ()
993
2-ary Closure
994
Load
995
Store
996
AtomicDec
997
ReturnOp(result. None)
998
Jump 1095
999
Frame Semaphore(cnt)
1000
DelVar result
1001
LoadVar cnt
1002
DelVar cnt
1003
StoreVar result
1004
ReturnOp(result)
1005
Jump 1095
1006
Frame P(sema)
1007
AtomicInc(eager)
1008
ReadonlyInc
1009
LoadVar sema
1010
Load
1011
Push 0
1012
2-ary >
1013
JumpCond False 1015
1014
Jump 1018
1015
ReadonlyDec
1016
AtomicDec
1017
Jump 1007
1018
ReadonlyDec
1019
LoadVar sema
1020
DelVar sema
1021
Dup
1022
Load
1023
Push 1
1024
2-ary -
1025
Store
1026
AtomicDec
1027
ReturnOp(result. None)
1028
Jump 1095
1029
Frame V(sema)
1030
AtomicInc(eager)
1031
LoadVar sema
1032
DelVar sema
1033
Dup
1034
Load
1035
Push 1
1036
2-ary +
1037
Store
1038
AtomicDec
1039
ReturnOp(result. None)
1040
Jump 1095
1041
Frame Queue()
1042
DelVar result
1043
Push ()
1044
StoreVar result
1045
ReturnOp(result)
1046
Jump 1095
1047
Frame get(q)
1048
AtomicInc(eager)
1049
DelVar result
1050
ReadonlyInc
1051
LoadVar q
1052
Load
1053
Push ()
1054
2-ary !=
1055
JumpCond False 1057
1056
Jump 1060
1057
ReadonlyDec
1058
AtomicDec
1059
Jump 1048
1060
ReadonlyDec
1061
Push PC(45)
1062
LoadVar q
1063
Load
1064
2-ary Closure
1065
Load
1066
StoreVar result
1067
LoadVar q
1068
Push PC(55)
1069
LoadVar q
1070
DelVar q
1071
Load
1072
2-ary Closure
1073
Load
1074
Store
1075
AtomicDec
1076
ReturnOp(result)
1077
Jump 1095
1078
Frame put(q, item)
1079
AtomicInc(eager)
1080
LoadVar q
1081
Push PC(33)
1082
Push ()
1083
LoadVar q
1084
DelVar q
1085
Load
1086
2-ary ListAdd
1087
LoadVar item
1088
DelVar item
1089
2-ary ListAdd
1090
2-ary Closure
1091
Load
1092
Store
1093
AtomicDec
1094
ReturnOp(result. None)
1095
Push {:}
1096
Store alloc$pool
1097
Push 0
1098
Store alloc$next
1099
Jump 1257
1100
Frame malloc(v)
1101
AtomicInc(eager)
1102
Push ?alloc$pool
1103
Load alloc$next
1104
2-ary AddArg
1105
LoadVar v
1106
DelVar v
1107
Store
1108
Push ?alloc$pool
1109
Load alloc$next
1110
2-ary AddArg
1111
StoreVar copy
1112
Load alloc$next
1113
Push 1
1114
2-ary +
1115
Store alloc$next
1116
AtomicDec
1117
ReturnOp(copy)
1118
DelVar copy
1119
Jump 1257
1120
Frame free(r)
1121
AtomicInc(eager)
1122
LoadVar r
1123
DelVar r
1124
Del
1125
AtomicDec
1126
ReturnOp(result. None)
1127
Jump 1257
1128
Frame leak_check()
1129
AtomicInc(lazy)
1130
ReadonlyInc
1131
Load alloc$pool
1132
Push {:}
1133
2-ary ==
1134
Push "alloc_leak"
1135
Assert2
1136
ReadonlyDec
1137
AtomicDec
1138
ReturnOp(result. None)
1139
Jump 1257
1140
Frame Queue()
1141
Push {:}
1142
Push "next"
1143
Push None
1144
3-ary DictAdd
1145
Push "value"
1146
Push None
1147
3-ary DictAdd
1148
Push "lock"
1149
Push ()
1150
Apply PC(820)
1151
3-ary DictAdd
1152
StoreVar empty
1153
ReturnOp(empty)
1154
DelVar empty
1155
Jump 1257
1156
Frame put(q, v)
1157
Push {:}
1158
Push "next"
1159
Push None
1160
3-ary DictAdd
1161
Push "value"
1162
LoadVar v
1163
DelVar v
1164
3-ary DictAdd
1165
Push "lock"
1166
Push ()
1167
Apply PC(820)
1168
3-ary DictAdd
1169
Apply PC(1100)
1170
StoreVar node
1171
LoadVar q
1172
DelVar q
1173
StoreVar nq
1174
LoadVar nq
1175
Push None
1176
2-ary !=
1177
JumpCond False 1207
1178
LoadVar nq
1179
Push "lock"
1180
2-ary AddArg
1181
Apply PC(843)
1182
Pop
1183
LoadVar nq
1184
Push "next"
1185
2-ary AddArg
1186
Load
1187
StoreVar n
1188
LoadVar n
1189
Push None
1190
2-ary ==
1191
JumpCond False 1197
1192
LoadVar nq
1193
Push "next"
1194
2-ary AddArg
1195
LoadVar node
1196
Store
1197
LoadVar nq
1198
DelVar nq
1199
Push "lock"
1200
2-ary AddArg
1201
Apply PC(862)
1202
Pop
1203
LoadVar n
1204
DelVar n
1205
StoreVar nq
1206
Jump 1174
1207
DelVar node
1208
DelVar nq
1209
ReturnOp(result. None)
1210
Jump 1257
1211
Frame get(q)
1212
LoadVar q
1213
Push "lock"
1214
2-ary AddArg
1215
Apply PC(843)
1216
Pop
1217
LoadVar q
1218
Push "next"
1219
2-ary AddArg
1220
Load
1221
Push None
1222
2-ary ==
1223
JumpCond False 1227
1224
Push None
1225
StoreVar next
1226
Jump 1249
1227
LoadVar q
1228
Push "next"
1229
2-ary AddArg
1230
Load
1231
StoreVar node
1232
LoadVar q
1233
Push "next"
1234
2-ary AddArg
1235
LoadVar node
1236
Push "next"
1237
2-ary AddArg
1238
Load
1239
Store
1240
LoadVar node
1241
Push "value"
1242
2-ary AddArg
1243
Load
1244
StoreVar next
1245
LoadVar node
1246
DelVar node
1247
Apply PC(1120)
1248
Pop
1249
LoadVar q
1250
DelVar q
1251
Push "lock"
1252
2-ary AddArg
1253
Apply PC(862)
1254
Pop
1255
ReturnOp(next)
1256
DelVar next
1257
Push PC(1140)
1258
Push ()
1259
2-ary Closure
1260
Load
1261
Store q
1262
Jump 1311
1263
Frame put_test(self)
1264
Push ()
1265
Push "call put"
1266
2-ary ListAdd
1267
LoadVar self
1268
2-ary ListAdd
1269
Print
1270
Push PC(1156)
1271
Push ()
1272
Push ?q
1273
2-ary ListAdd
1274
LoadVar self
1275
2-ary ListAdd
1276
2-ary Closure
1277
Load
1278
Pop
1279
Push ()
1280
Push "done put"
1281
2-ary ListAdd
1282
LoadVar self
1283
DelVar self
1284
2-ary ListAdd
1285
Print
1286
ReturnOp(result. None)
1287
Jump 1311
1288
Frame get_test(self)
1289
Push ()
1290
Push "call get"
1291
2-ary ListAdd
1292
LoadVar self
1293
2-ary ListAdd
1294
Print
1295
Push PC(1211)
1296
Push ?q
1297
2-ary Closure
1298
Load
1299
StoreVar v
1300
Push ()
1301
Push "done get"
1302
2-ary ListAdd
1303
LoadVar self
1304
DelVar self
1305
2-ary ListAdd
1306
LoadVar v
1307
DelVar v
1308
2-ary ListAdd
1309
Print
1310
ReturnOp(result. None)
1311
Push 1
1312
Push 2
1313
2-ary ..
1314
Push 0
1315
Cut(i)
1316
JumpCond False 1324
1317
Push ?PC(1263)
1318
LoadVar i
1319
DelVar i
1320
2-ary AddArg
1321
Push {:}
1322
Spawn
1323
Jump 1315
1324
DelVar i
1325
Push 1
1326
Push 1
1327
2-ary ..
1328
Push 0
1329
Cut(i)
1330
JumpCond False 1338
1331
Push ?PC(1288)
1332
LoadVar i
1333
DelVar i
1334
2-ary AddArg
1335
Push {:}
1336
Spawn
1337
Jump 1329
1338
DelVar i
1339
ReturnOp(result. None)
1340
DelVar result