<div>Hi Marc!</div><div><br></div><div><br></div><div>Rarely I get an error that Gambit just stops, while eating up all the CPU core.</div><div><br></div><div>It's so rare that I don't consider it a problem, though I'd be happy to see it gone of course.</div>

<div><br></div><div>I believe 50% of the time it happens within 5 seconds after Gambit started and thread-start! was invoked 1-5 times.</div><div><br></div><div>I ran into this error now, saw it something like four times in 6mo.</div>

<div><br></div><div>This is on Gambit gsc 4.6.6 on AMD64, compiled from source with --enable-single-host and some more.</div><div><br></div><div>The Gambit session is running a couple of Gambit threads, absolutely nothing exotic going on.</div>

<div><br></div><div>Had it in a GDB session so could reliably "profile" the error, output from that GDB session below.</div><div><br></div><div>Saved the core file for later reference too.</div><div><br></div><div>

It's in _thread.scm , and from what I can see it's in |##thread-effective-priority-downgrade!|'s definition.</div><div><br></div><div>What it looks like to me is that by some reason we've got a self-referencing btq-deq-next chain element, that</div>

<div>keeps it reiterating forever.</div><div><br></div><div>I base this on that ___r1 and ___r3 and ___r4 remain constant; I'd guess that ___r1 is thread, ___r3 is btq and ___r4 is leftmost.</div><div><br></div><div>
<br>
</div><div><br></div><div>Do you have any thought on what the issue might be, or any on how I can track this further?</div><div><br></div><div><br></div><div>Many thanks,</div><div>Mikael</div><div><br></div><div><br></div>

<div><br></div><div>_thread.scm, the rows where the freeze appears to be</div><div><br></div><div><font face="courier new, monospace">;; (##thread-effective-priority-downgrade! thread) is called to</font></div><div><font face="courier new, monospace">;; recompute the effective priority of a thread.  It is only called in</font></div>

<div><font face="courier new, monospace">;; situations where the new effective priority is no more than the old</font></div><div><font face="courier new, monospace">;; one.</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">(define-prim (##thread-effective-priority-downgrade! thread)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">  (##declare (not interrupts-enabled))</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">  (let ((floats (macro-thread-floats thread)))</font></div><div><font face="courier new, monospace"><br></font></div><div>

<font face="courier new, monospace">    ;; save old effective priority for later</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    (macro-temp-set!</font></div>

<div><font face="courier new, monospace">     (macro-thread-floats (macro-run-queue))</font></div><div><font face="courier new, monospace">     (macro-effective-priority floats))</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">    ;; compute the maximum of the boosted priority and the</font></div><div><font face="courier new, monospace">    ;; effective priority of all the threads in blocked thread</font></div>

<div><font face="courier new, monospace">    ;; queues (i.e. mutexes, condvars, etc) owned by the thread</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    (macro-effective-priority-set!</font></div>

<div><font face="courier new, monospace">     floats</font></div><div><font face="courier new, monospace">     (macro-boosted-priority floats))</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">    (let loop ((btq (macro-btq-deq-next thread)))</font></div>

<div><font face="courier new, monospace">      (if (##not (##eq? btq thread))                                              <-- Looks sth like _thread.c:10452</font></div><div><font face="courier new, monospace">        (let ((leftmost (macro-btq-leftmost btq)))                                <--                         :10456</font></div>

<div><font face="courier new, monospace">          (if (##not (##eq? leftmost btq))                                        <--                         :10457</font></div><div><font face="courier new, monospace">            (let ((leftmost-floats (macro-thread-floats leftmost)))</font></div>

<div><font face="courier new, monospace">              (if (##flonum.< (macro-effective-priority floats)</font></div><div><font face="courier new, monospace">                              (macro-effective-priority leftmost-floats))</font></div>

<div><font face="courier new, monospace">                (macro-effective-priority-set!</font></div><div><font face="courier new, monospace">                 floats</font></div><div><font face="courier new, monospace">                 (macro-effective-priority leftmost-floats)))))</font></div>

<div><font face="courier new, monospace">          (loop (macro-btq-deq-next btq)))))</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div>Gdb log from "profiling" the frozen gsc session, as we see it's stuck in a loop in _thread.c between rows 10451 and 10458 :</div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">10457      ___IF(___EQP(___R4,___R3))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace">(gdb) cont</font></div><div><font face="courier new, monospace">Continuing.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">0x000000000075a8f2 in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10452</font></div>

<div><font face="courier new, monospace">10452      ___IF(___EQP(___R3,___R1))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  0x000000000075a8f2 in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10452</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace">(gdb) cont</font></div><div><font face="courier new, monospace">Continuing.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">10457      ___IF(___EQP(___R4,___R3))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace">(gdb) ^CQuit</font></div><div><font face="courier new, monospace">(gdb) cont</font></div>

<div><font face="courier new, monospace">Continuing.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div>

<font face="courier new, monospace">___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10451</font></div><div><font face="courier new, monospace">10451      ___SET_R3(___VECTORREF(___R3,___FIX(1L)))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div>

<div><font face="courier new, monospace">#0  ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10451</font></div><div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div>

<div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div><div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div>

<div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10456</font></div>

<div><font face="courier new, monospace">10456      ___SET_R4(___VECTORREF(___R3,___FIX(6L)))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10456</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace">(gdb) cont</font></div><div><font face="courier new, monospace">Continuing.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">10457      ___IF(___EQP(___R4,___R3))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace">(gdb) cont</font></div><div><font face="courier new, monospace">Continuing.</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Program received signal SIGINT, Interrupt.</font></div><div><font face="courier new, monospace">0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">10457      ___IF(___EQP(___R4,___R3))</font></div><div><font face="courier new, monospace">(gdb) bt</font></div><div><font face="courier new, monospace">#0  0x000000000075a90a in ___H__20___thread (_(short *)=0x11c47e0) at _thread.c:10457</font></div>

<div><font face="courier new, monospace">#1  0x00000000005086fb in ___call (nargs=0, proc=13386241, stack_marker=8829493553) at setup.c:1860</font></div><div><font face="courier new, monospace">#2  0x000000000050a31d in ___setup (setup_params=0x7f7fffff0460) at setup.c:3024</font></div>

<div><font face="courier new, monospace">#3  0x000000000052d8ca in ___main (linker=0x505ddc <____20___gsc__(___global_state_struct*)>) at main.c:711</font></div><div><font face="courier new, monospace">#4  0x000000000051a9fc in ___main_char (argc=5, argv=0x7f7fffff06a8, linker=0x505ddc <____20___gsc__(___global_state_struct*)>, script_line=0x0) at os_base.c:413</font></div>

<div><font face="courier new, monospace">#5  0x0000000000505e16 in main (argc=5, argv=0x7f7fffff06a8) at _gsc_.c:13627</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Well, since that was about a traversal over a structure, let's make some profiling of what the ___r1/3/4 variable is, so we get a clue of how the traversal goes!</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">(gdb) info locals</font></div><div><font face="courier new, monospace">___r4 = 9052459177</font></div>

<div><font face="courier new, monospace">___F64V1 = 9.9999999999999995e-07</font></div><div><font face="courier new, monospace">___r1 = 9051204137</font></div><div><font face="courier new, monospace">___F64V2 = 0</font></div>

<div><font face="courier new, monospace">_(char *) = 14328769</font></div><div><font face="courier new, monospace">___temp = 9052462209</font></div><div><font face="courier new, monospace">___hp = 0x21b91bbc8</font></div>

<div><font face="courier new, monospace">_(float,  *) = 0x208306628</font></div><div><font face="courier new, monospace">_(long double, ) = 14327969</font></div><div><font face="courier new, monospace">___r2 = 9051204361</font></div>

<div><font face="courier new, monospace">___F64V3 = 0.02</font></div><div><font face="courier new, monospace">___start = 14314721</font></div><div><font face="courier new, monospace">___r3 = 9052459177</font></div><div><font face="courier new, monospace">___F64V4 = 0.02</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">next:</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">___r4 = 9052459177</font></div>

<div><font face="courier new, monospace">___F64V1 = 9.9999999999999995e-07</font></div><div><font face="courier new, monospace">___r1 = 9051204137</font></div><div><font face="courier new, monospace">___F64V2 = 0</font></div>

<div><font face="courier new, monospace">_(char *) = 14328769</font></div><div><font face="courier new, monospace">___temp = 9052462209</font></div><div><font face="courier new, monospace">___hp = 0x21b91bbc8</font></div>

<div><font face="courier new, monospace">_(float,  *) = 0x208306628</font></div><div><font face="courier new, monospace">_(long double, ) = 14327969</font></div><div><font face="courier new, monospace">___r2 = 9051204361</font></div>

<div><font face="courier new, monospace">___F64V3 = 0.02</font></div><div><font face="courier new, monospace">___start = 14314721</font></div><div><font face="courier new, monospace">___r3 = 9052459177</font></div><div><font face="courier new, monospace">___F64V4 = 0.02</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">next:</font></div><div><font face="courier new, monospace"><br>
</font></div>
<div><font face="courier new, monospace">___r4 = 9052459177</font></div><div><font face="courier new, monospace">___F64V1 = 9.9999999999999995e-07</font></div><div><font face="courier new, monospace">___r1 = 9051204137</font></div>

<div><font face="courier new, monospace">___F64V2 = 0</font></div><div><font face="courier new, monospace">_(char *) = 14328769</font></div><div><font face="courier new, monospace">___temp = 9052462209</font></div><div><font face="courier new, monospace">___hp = 0x21b91bbc8</font></div>

<div><font face="courier new, monospace">_(float,  *) = 0x208306628</font></div><div><font face="courier new, monospace">_(long double, ) = 14327969</font></div><div><font face="courier new, monospace">___r2 = 9051204361</font></div>

<div><font face="courier new, monospace">___F64V3 = 0.02</font></div><div><font face="courier new, monospace">___start = 14314721</font></div><div><font face="courier new, monospace">___r3 = 9052459177</font></div><div><font face="courier new, monospace">___F64V4 = 0.02</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">next:</font></div><div><font face="courier new, monospace"><br>
</font></div>
<div><font face="courier new, monospace">___r4 = 9052459177</font></div><div><font face="courier new, monospace">___F64V1 = 9.9999999999999995e-07</font></div><div><font face="courier new, monospace">___r1 = 9051204137</font></div>

<div><font face="courier new, monospace">___F64V2 = 0</font></div><div><font face="courier new, monospace">_(char *) = 14328769</font></div><div><font face="courier new, monospace">___temp = 9052462209</font></div><div><font face="courier new, monospace">___hp = 0x21b91bbc8</font></div>

<div><font face="courier new, monospace">_(float,  *) = 0x208306628</font></div><div><font face="courier new, monospace">_(long double, ) = 14327969</font></div><div><font face="courier new, monospace">___r2 = 9051204361</font></div>

<div><font face="courier new, monospace">___F64V3 = 0.02</font></div><div><font face="courier new, monospace">___start = 14314721</font></div><div><font face="courier new, monospace">___r3 = 9052459177</font></div><div><font face="courier new, monospace">___F64V4 = 0.02</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">next:</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">___r4 = 9052459177</font></div>

<div><font face="courier new, monospace">___F64V1 = 9.9999999999999995e-07</font></div><div><font face="courier new, monospace">___r1 = 9051204137</font></div><div><font face="courier new, monospace">___F64V2 = 0</font></div>

<div><font face="courier new, monospace">_(char *) = 14328769</font></div><div><font face="courier new, monospace">___temp = 9052462209</font></div><div><font face="courier new, monospace">___hp = 0x21b91bbc8</font></div>

<div><font face="courier new, monospace">_(float,  *) = 0x208306628</font></div><div><font face="courier new, monospace">_(long double, ) = 14327969</font></div><div><font face="courier new, monospace">___r2 = 9051204361</font></div>

<div><font face="courier new, monospace">___F64V3 = 0.02</font></div><div><font face="courier new, monospace">___start = 14314721</font></div><div><font face="courier new, monospace">___r3 = 9052459177</font></div><div><font face="courier new, monospace">___F64V4 = 0.02</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace">The rows it's stuck at, in _thread.c .</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">(the following was copied from _thread.c of Gambit 4.6.2,</font></div><div><font face="courier new, monospace">it looks like it's equivalent with 4.6.6 at least on these locations, so should be fine)</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">       #undef ___PH_PROC</font></div><div><font face="courier new, monospace">       #define ___PH_PROC ___H__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_</font></div>

<div><font face="courier new, monospace">       #undef ___PH_LBL0</font></div><div><font face="courier new, monospace">       #define ___PH_LBL0 414</font></div><div><font face="courier new, monospace">       #undef ___PD_ALL</font></div>

<div><font face="courier new, monospace">       #define ___PD_ALL ___D_FP ___D_R0 ___D_R1 ___D_R2 ___D_R3 ___D_R4 ___D_F64(___F64V1) ___D_F64(___F64V2) \</font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace">       #undef ___PR_ALL</font></div><div><font face="courier new, monospace">       #define ___PR_ALL ___R_FP ___R_R0 ___R_R1 ___R_R2 ___R_R3 ___R_R4</font></div><div><font face="courier new, monospace">       #undef ___PW_ALL</font></div>

<div><font face="courier new, monospace">       #define ___PW_ALL ___W_FP ___W_R0 ___W_R1 ___W_R2 ___W_R3 ___W_R4</font></div><div><font face="courier new, monospace">       ___BEGIN_P_COD</font></div><div><font face="courier new, monospace">       ___BEGIN_P_HLBL</font></div>

<div><font face="courier new, monospace">       ___DEF_P_HLBL_INTRO</font></div><div><font face="courier new, monospace">       ___DEF_P_HLBL(___L0__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div>

<font face="courier new, monospace">       ___DEF_P_HLBL(___L1__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">       ___END_P_HLBL</font></div><div><font face="courier new, monospace">       ___BEGIN_P_SW</font></div>

<div><font face="courier new, monospace">       ___DEF_SLBL(0,___L0__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">          ___IF_NARGS_EQ(1,___NOTHING)</font></div>

<div><font face="courier new, monospace">          ___WRONG_NARGS(0,1,0,0)</font></div><div><font face="courier new, monospace">       ___DEF_GLBL(___L__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___SET_R2(___UNCHECKEDSTRUCTUREREF(___R1,___FIX(14L),___SUB(22),___FAL))</font></div><div><font face="courier new, monospace">          ___SET_F64(___F64V1,___F64VECTORREF(___R2,___FIX(6L)))</font></div>

<div><font face="courier new, monospace">          ___SET_R4(___RUNQUEUE)</font></div><div><font face="courier new, monospace">          ___SET_R4(___UNCHECKEDSTRUCTUREREF(___R4,___FIX(14L),___SUB(22),___FAL))</font></div>

<div><font face="courier new, monospace">          ___F64VECTORSET(___R4,___FIX(2L),___F64V1)</font></div><div><font face="courier new, monospace">          ___SET_F64(___F64V2,___F64VECTORREF(___R2,___FIX(5L)))</font></div>

<div><font face="courier new, monospace">          ___F64VECTORSET(___R2,___FIX(6L),___F64V2)</font></div><div><font face="courier new, monospace">          ___SET_STK(1,___R0)</font></div><div><font face="courier new, monospace">          ___SET_STK(2,___R1)</font></div>

<div><font face="courier new, monospace">          ___SET_STK(3,___R2)</font></div><div><font face="courier new, monospace">          ___SET_R3(___VECTORREF(___R1,___FIX(1L)))</font></div><div><font face="courier new, monospace">          ___SET_R0(___LBL(1))</font></div>

<div><font face="courier new, monospace">          ___ADJFP(8)</font></div><div><font face="courier new, monospace">          ___IF(___EQP(___R3,___R1))</font></div><div><font face="courier new, monospace">          ___GOTO(___L6__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___END_IF</font></div><div><font face="courier new, monospace">          ___GOTO(___L4__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">       ___DEF_GLBL(___L2__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___SET_R4(___UNCHECKEDSTRUCTUREREF(___R4,___FIX(14L),___SUB(22),___FAL))</font></div><div><font face="courier new, monospace">          ___SET_F64(___F64V1,___F64VECTORREF(___R4,___FIX(6L)))</font></div>

<div><font face="courier new, monospace">          ___SET_F64(___F64V2,___F64VECTORREF(___R2,___FIX(6L)))</font></div><div><font face="courier new, monospace">          ___ADJFP(2)</font></div><div><font face="courier new, monospace">          ___IF(___F64LT(___F64V2,___F64V1))</font></div>

<div><font face="courier new, monospace">          ___GOTO(___L5__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">          ___END_IF</font></div><div><font face="courier new, monospace">          ___ADJFP(-2)</font></div>

<div><font face="courier new, monospace">       ___DEF_GLBL(___L3__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">10451:    ___SET_R3(___VECTORREF(___R3,___FIX(1L)))</font></div>

<div><font face="courier new, monospace">10452:    ___IF(___EQP(___R3,___R1))</font></div><div><font face="courier new, monospace">          ___GOTO(___L6__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___END_IF</font></div><div><font face="courier new, monospace">       ___DEF_GLBL(___L4__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">10456:    ___SET_R4(___VECTORREF(___R3,___FIX(6L)))</font></div>

<div><font face="courier new, monospace">10457:    ___IF(___EQP(___R4,___R3))</font></div><div><font face="courier new, monospace">10458:    ___GOTO(___L3__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___END_IF</font></div><div><font face="courier new, monospace">          ___GOTO(___L2__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">       ___DEF_GLBL(___L5__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___SET_F64(___F64V1,___F64VECTORREF(___R4,___FIX(6L)))</font></div><div><font face="courier new, monospace">          ___F64VECTORSET(___R2,___FIX(6L),___F64V1)</font></div>

<div><font face="courier new, monospace">          ___ADJFP(-2)</font></div><div><font face="courier new, monospace">          ___GOTO(___L3__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div><div><font face="courier new, monospace">       ___DEF_GLBL(___L6__23__23_thread_2d_effective_2d_priority_2d_downgrade_21_)</font></div>

<div><font face="courier new, monospace">          ___SET_R1(___VOID)</font></div><div><font face="courier new, monospace">          ___JUMPPRM(___NOTHING,___R0)</font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><br></div>