Hide details
Issue: Behavior violation: unexpected output
ⓘ
Shared Variables
Output
Turn
ⓘ
Thread
Execution
PC
cnt
onelane$count
onelane$locks
1
T0: __init__()
Set
onelane$locks
to
[ False, False ]
Set
onelane$count
to
0
Set
cnt
to
[ 0, 0 ]
2
T1: car(0)
Set
onelane$locks[0]
to
True
Set
onelane$count
to
1
Set
onelane$locks[1]
to
True
Set
onelane$locks[0]
to
False
3
T2: car(0)
Set
onelane$locks[0]
to
True
Set
onelane$count
to
2
Set
onelane$locks[0]
to
False
Print
"WB enters"
4
T1: car(0)
Print
"WB enters"
Harmony bytecode
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 1106
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 1106
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 1106
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 1106
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 1106
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 1106
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 1106
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 1106
820
Frame Lock()
821
DelVar result
822
Push False
823
StoreVar result
824
ReturnOp(result)
825
Jump 1106
826
Frame acquired(lock)
827
DelVar result
828
LoadVar lock
829
DelVar lock
830
Load
831
StoreVar result
832
ReturnOp(result)
833
Jump 1106
834
Frame held(lock)
835
DelVar result
836
LoadVar lock
837
DelVar lock
838
Load
839
StoreVar result
840
ReturnOp(result)
841
Jump 1106
842
Frame acquire(lock)
843
AtomicInc(eager)
844
ReadonlyInc
845
LoadVar lock
846
Load
847
1-ary not
848
JumpCond False 850
849
Jump 853
850
ReadonlyDec
851
AtomicDec
852
Jump 843
853
ReadonlyDec
854
LoadVar lock
855
DelVar lock
856
Push True
857
Store
858
AtomicDec
859
ReturnOp(result. None)
860
Jump 1106
861
Frame release(lock)
862
AtomicInc(eager)
863
AtomicInc(lazy)
864
ReadonlyInc
865
LoadVar lock
866
Load
867
Push "release(): lock not owned"
868
Assert2
869
ReadonlyDec
870
AtomicDec
871
LoadVar lock
872
DelVar lock
873
Push False
874
Store
875
AtomicDec
876
ReturnOp(result. None)
877
Jump 1106
878
Frame Condition()
879
DelVar result
880
Push PC(430)
881
Push ()
882
2-ary Closure
883
Load
884
StoreVar result
885
ReturnOp(result)
886
Jump 1106
887
Frame wait(c, lk)
888
Push 0
889
StoreVar cnt
890
DelVar cnt
891
Push ()
892
Save
893
Continue
894
StoreVar ((), ctx)
895
AtomicInc(eager)
896
Push PC(494)
897
Push ()
898
LoadVar c
899
Load
900
2-ary ListAdd
901
LoadVar ctx
902
2-ary ListAdd
903
2-ary Closure
904
Load
905
StoreVar cnt
906
LoadVar c
907
Push PC(585)
908
Push ()
909
LoadVar c
910
Load
911
2-ary ListAdd
912
LoadVar ctx
913
2-ary ListAdd
914
2-ary Closure
915
Load
916
Store
917
LoadVar lk
918
Push False
919
Store
920
AtomicDec
921
AtomicInc(eager)
922
ReadonlyInc
923
LoadVar lk
924
Load
925
1-ary not
926
JumpCond False 939
927
Push PC(494)
928
Push ()
929
LoadVar c
930
Load
931
2-ary ListAdd
932
LoadVar ctx
933
2-ary ListAdd
934
2-ary Closure
935
Load
936
LoadVar cnt
937
2-ary <=
938
Jump 940
939
Push False
940
JumpCond False 945
941
DelVar c
942
DelVar cnt
943
DelVar ctx
944
Jump 948
945
ReadonlyDec
946
AtomicDec
947
Jump 921
948
ReadonlyDec
949
LoadVar lk
950
DelVar lk
951
Push True
952
Store
953
AtomicDec
954
ReturnOp(result. None)
955
Jump 1106
956
Frame notify(c)
957
AtomicInc(eager)
958
LoadVar c
959
Load
960
Push PC(430)
961
Push ()
962
2-ary Closure
963
Load
964
2-ary !=
965
JumpCond False 982
966
LoadVar c
967
Push PC(614)
968
Push ()
969
LoadVar c
970
Load
971
2-ary ListAdd
972
Push PC(574)
973
LoadVar c
974
DelVar c
975
Load
976
2-ary Closure
977
Load
978
2-ary ListAdd
979
2-ary Closure
980
Load
981
Store
982
DelVar c
983
AtomicDec
984
ReturnOp(result. None)
985
Jump 1106
986
Frame notify_all(c)
987
AtomicInc(eager)
988
LoadVar c
989
DelVar c
990
Push PC(430)
991
Push ()
992
2-ary Closure
993
Load
994
Store
995
AtomicDec
996
ReturnOp(result. None)
997
Jump 1106
998
Frame notifyAll(c)
999
AtomicInc(eager)
1000
LoadVar c
1001
DelVar c
1002
Push PC(430)
1003
Push ()
1004
2-ary Closure
1005
Load
1006
Store
1007
AtomicDec
1008
ReturnOp(result. None)
1009
Jump 1106
1010
Frame Semaphore(cnt)
1011
DelVar result
1012
LoadVar cnt
1013
DelVar cnt
1014
StoreVar result
1015
ReturnOp(result)
1016
Jump 1106
1017
Frame P(sema)
1018
AtomicInc(eager)
1019
ReadonlyInc
1020
LoadVar sema
1021
Load
1022
Push 0
1023
2-ary >
1024
JumpCond False 1026
1025
Jump 1029
1026
ReadonlyDec
1027
AtomicDec
1028
Jump 1018
1029
ReadonlyDec
1030
LoadVar sema
1031
DelVar sema
1032
Dup
1033
Load
1034
Push 1
1035
2-ary -
1036
Store
1037
AtomicDec
1038
ReturnOp(result. None)
1039
Jump 1106
1040
Frame V(sema)
1041
AtomicInc(eager)
1042
LoadVar sema
1043
DelVar sema
1044
Dup
1045
Load
1046
Push 1
1047
2-ary +
1048
Store
1049
AtomicDec
1050
ReturnOp(result. None)
1051
Jump 1106
1052
Frame Queue()
1053
DelVar result
1054
Push ()
1055
StoreVar result
1056
ReturnOp(result)
1057
Jump 1106
1058
Frame get(q)
1059
AtomicInc(eager)
1060
DelVar result
1061
ReadonlyInc
1062
LoadVar q
1063
Load
1064
Push ()
1065
2-ary !=
1066
JumpCond False 1068
1067
Jump 1071
1068
ReadonlyDec
1069
AtomicDec
1070
Jump 1059
1071
ReadonlyDec
1072
Push PC(45)
1073
LoadVar q
1074
Load
1075
2-ary Closure
1076
Load
1077
StoreVar result
1078
LoadVar q
1079
Push PC(55)
1080
LoadVar q
1081
DelVar q
1082
Load
1083
2-ary Closure
1084
Load
1085
Store
1086
AtomicDec
1087
ReturnOp(result)
1088
Jump 1106
1089
Frame put(q, item)
1090
AtomicInc(eager)
1091
LoadVar q
1092
Push PC(33)
1093
Push ()
1094
LoadVar q
1095
DelVar q
1096
Load
1097
2-ary ListAdd
1098
LoadVar item
1099
DelVar item
1100
2-ary ListAdd
1101
2-ary Closure
1102
Load
1103
Store
1104
AtomicDec
1105
ReturnOp(result. None)
1106
Push ()
1107
Push ()
1108
Apply PC(820)
1109
2-ary ListAdd
1110
Push ()
1111
Apply PC(820)
1112
2-ary ListAdd
1113
Store onelane$locks
1114
Push 0
1115
Store onelane$count
1116
Jump 1190
1117
Frame enter(direction)
1118
LoadVar direction
1119
DelVar direction
1120
Push 0
1121
2-ary ==
1122
JumpCond False 1147
1123
Push ?onelane$locks
1124
Push 0
1125
2-ary AddArg
1126
Apply PC(842)
1127
Pop
1128
Load onelane$count
1129
Push 1
1130
2-ary +
1131
Store onelane$count
1132
Load onelane$count
1133
Push 1
1134
2-ary ==
1135
JumpCond False 1141
1136
Push ?onelane$locks
1137
Push 1
1138
2-ary AddArg
1139
Apply PC(842)
1140
Pop
1141
Push ?onelane$locks
1142
Push 0
1143
2-ary AddArg
1144
Apply PC(861)
1145
Pop
1146
Jump 1152
1147
Push ?onelane$locks
1148
Push 1
1149
2-ary AddArg
1150
Apply PC(842)
1151
Pop
1152
ReturnOp(result. None)
1153
Jump 1190
1154
Frame exit(direction)
1155
LoadVar direction
1156
DelVar direction
1157
Push 0
1158
2-ary ==
1159
JumpCond False 1184
1160
Push ?onelane$locks
1161
Push 0
1162
2-ary AddArg
1163
Apply PC(842)
1164
Pop
1165
Load onelane$count
1166
Push 1
1167
2-ary -
1168
Store onelane$count
1169
Load onelane$count
1170
Push 0
1171
2-ary ==
1172
JumpCond False 1178
1173
Push ?onelane$locks
1174
Push 1
1175
2-ary AddArg
1176
Apply PC(861)
1177
Pop
1178
Push ?onelane$locks
1179
Push 0
1180
2-ary AddArg
1181
Apply PC(861)
1182
Pop
1183
Jump 1189
1184
Push ?onelane$locks
1185
Push 1
1186
2-ary AddArg
1187
Apply PC(861)
1188
Pop
1189
ReturnOp(result. None)
1190
Push ()
1191
Push 0
1192
2-ary ListAdd
1193
Push 0
1194
2-ary ListAdd
1195
Store cnt
1196
Jump 1219
1197
Frame car(direction)
1198
LoadVar direction
1199
Apply PC(1117)
1200
Pop
1201
LoadVar direction
1202
Push 1
1203
2-ary ==
1204
JumpCond False 1210
1205
Push "EB enters"
1206
Print
1207
Push "EB exits"
1208
Print
1209
Jump 1214
1210
Push "WB enters"
1211
Print
1212
Push "WB exits"
1213
Print
1214
LoadVar direction
1215
DelVar direction
1216
Apply PC(1154)
1217
Pop
1218
ReturnOp(result. None)
1219
Push 0
1220
Push 2
1221
Push 1
1222
2-ary -
1223
2-ary ..
1224
Push 0
1225
Cut(i)
1226
DelVar i
1227
JumpCond False 1234
1228
Push ?PC(1197)
1229
Push 0
1230
2-ary AddArg
1231
Push {:}
1232
Spawn
1233
Jump 1225
1234
Push 0
1235
Push 2
1236
Push 1
1237
2-ary -
1238
2-ary ..
1239
Push 0
1240
Cut(i)
1241
DelVar i
1242
JumpCond False 1249
1243
Push ?PC(1197)
1244
Push 1
1245
2-ary AddArg
1246
Push {:}
1247
Spawn
1248
Jump 1240
1249
ReturnOp(result. None)
1250
DelVar result