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
T0: __init__()
T1: put_test(1)
T2: put_test(2)
T3: get_test(1)
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
Threads
ID Status Stack Trace Stack Top
T0 init
T1 init
T2 init
T3 init