Skip to content

fix(osm): keep OSM/OSL timeout alive across non-consuming events#866

Open
yekingyan wants to merge 3 commits into
HaoboGu:mainfrom
yekingyan:fix/osm-osl-timeout-non-consuming
Open

fix(osm): keep OSM/OSL timeout alive across non-consuming events#866
yekingyan wants to merge 3 commits into
HaoboGu:mainfrom
yekingyan:fix/osm-osl-timeout-non-consuming

Conversation

@yekingyan

@yekingyan yekingyan commented May 29, 2026

Copy link
Copy Markdown
Contributor

Problem

The OSM/OSL release path waited with a single select(timeout, next_event).
The first event arriving during the timeout cancelled the wait permanently,
so the one-shot got stuck in Single and never auto-released. A typical
trigger is the release event of a layer key (a non-consuming event).

(Note: the #854 TODO actually refers to a separate OSM + morse/tap-hold
timing issue, not this one — see the Test section.)

Fix

Replace the single select with a deadline loop: non-consuming events are
pushed to the queue and we keep waiting for the remaining time, while a
consuming event breaks out (OSM: press in quick_release mode, release
otherwise; OSL: press).

(Same fragility ldsands hit independently in the StickyMod release handler in #859.)

Test

Added test_osm_timeout_not_cancelled_by_non_consuming_event: an OSL press
interrupts the OSM timeout; after the timeout elapses the OSM must have
auto-released, so the later layer-1 key is sent without the modifier.
Red before the fix, green after.

The previously-omitted test_osm_quick_release_rolling is intentionally left
out: it fails due to an unrelated OSM + morse/tap-hold timing issue (the
modifier is cleared before the buffered tap resolves), which this PR does
not address.

The OSM/OSL release path used a single select(timeout, next_event), so the
first event arriving during the timeout cancelled the wait permanently,
leaving the one-shot stuck in Single (never auto-released). A typical
trigger is the release event of a layer key.

Replace the single select with a deadline loop: non-consuming events are
pushed to the queue and we keep waiting for the remaining time, while a
consuming event (OSM: press in quick_release mode, release otherwise;
OSL: press) breaks out.
@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown

Size Report

Example main PR Diff .text .data .bss
use_config/nrf52832_ble 372.1 KiB 372.3 KiB +0.05% ⬆️ +208 0 0
use_config/nrf52840_ble 421.7 KiB 421.9 KiB +0.05% ⬆️ +240 0 0
use_config/nrf52840_ble_split (central) 497.2 KiB 497.5 KiB +0.05% ⬆️ +284 0 0
use_config/nrf52840_ble_split (peripheral) 322.3 KiB 322.2 KiB +0.00% ⬇️ -12 0 0
use_config/pi_pico_w_ble 659.3 KiB 659.5 KiB +0.03% ⬆️ +216 0 0
use_config/rp2040 147.2 KiB 147.3 KiB +0.06% ⬆️ +104 0 0
use_config/rp2040_split (central) 160.4 KiB 160.6 KiB +0.06% ⬆️ +108 0 0
use_config/rp2040_split (peripheral) 27.4 KiB 27.4 KiB -0.01% ⬇️ -4 0 0
use_config/stm32f1 62.6 KiB 62.9 KiB +0.36% ⬆️ +232 0 0
use_config/stm32h7 99.8 KiB 100.0 KiB +0.23% ⬆️ +244 0 0
use_rust/nrf52832_ble 359.5 KiB 359.8 KiB +0.06% ⬆️ +224 0 0
use_rust/nrf52840_ble 417.8 KiB 418.0 KiB +0.04% ⬆️ +200 0 0
use_rust/nrf52840_ble_split (central) 506.6 KiB 506.8 KiB +0.04% ⬆️ +224 0 0
use_rust/nrf52840_ble_split (peripheral) 319.0 KiB 319.0 KiB +0.00% 0 0 0
use_rust/pi_pico_w_ble 488.0 KiB 660.1 KiB +35.26% ⬆️ +176208 0 0
use_rust/rp2040 147.2 KiB 147.3 KiB +0.06% ⬆️ +104 0 0
use_rust/rp2040_split (central) 159.6 KiB 159.7 KiB +0.06% ⬆️ +104 0 0
use_rust/rp2040_split (peripheral) 27.8 KiB 27.8 KiB -0.01% ⬇️ -4 0 0
use_rust/stm32f1 62.6 KiB 62.9 KiB +0.34% ⬆️ +224 0 0
use_rust/stm32h7 121.2 KiB 121.4 KiB +0.19% ⬆️ +236 0 0
use_config/nrf52832_ble — 372.1 KiB → 372.3 KiB (+0.05% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 341636	   5256	  34376	 381268	  5d154	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 341428	   5256	  34376	 381060	  5d084	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +1.08Ki  [ = ]       0    .debug_info
  +0.1%    +208  +0.1%    +208    .text
  +0.1%    +188  [ = ]       0    .debug_line
  +0.1%    +152  [ = ]       0    .debug_ranges
  +0.0%    +130  [ = ]       0    .strtab
  +0.1%     +64  [ = ]       0    .symtab
  +0.1%     +48  [ = ]       0    .debug_frame
   +33%     +17  [ = ]       0    [Unmapped]
  +0.0%     +16  [ = ]       0    .debug_aranges
  -0.2%     -17  [ = ]       0    .debug_abbrev
  -0.0%    -282  [ = ]       0    .debug_loc
  -0.1% -1.72Ki  [ = ]       0    .debug_str
  -0.0%    -136  +0.1%    +208    TOTAL
use_config/nrf52840_ble — 421.7 KiB → 421.9 KiB (+0.05% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 375632	   5264	  51176	 432072	  697c8	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 375392	   5264	  51176	 431832	  696d8	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.63Ki  [ = ]       0    .debug_str
  +0.1%    +240  +0.1%    +240    .text
  +0.1%    +192  [ = ]       0    .debug_ranges
  +0.1%    +160  [ = ]       0    .symtab
  +0.0%     +88  [ = ]       0    .strtab
  +0.1%     +52  [ = ]       0    .debug_frame
  +0.0%     +49  [ = ]       0    .debug_line
  +0.1%     +24  [ = ]       0    .debug_aranges
 -25.4%     -17  [ = ]       0    [Unmapped]
  -0.6%     -52  [ = ]       0    .debug_abbrev
  -0.1%    -974  [ = ]       0    .debug_loc
  -0.1% -1.55Ki  [ = ]       0    .debug_info
  -0.0%    -156  +0.1%    +240    TOTAL
use_config/nrf52840_ble_split (central) — 497.2 KiB → 497.5 KiB (+0.05% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 455852	   6588	  46992	 509432	  7c5f8	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 455568	   6588	  46992	 509148	  7c4dc	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +862  [ = ]       0    .debug_info
  +0.1%    +310  [ = ]       0    .debug_line
  +0.1%    +284  +0.1%    +284    .text
  +0.1%    +200  [ = ]       0    .debug_ranges
  +0.0%    +160  [ = ]       0    .strtab
  +0.1%    +128  [ = ]       0    .symtab
  +0.1%     +64  [ = ]       0    .debug_frame
  +0.1%     +24  [ = ]       0    .debug_aranges
  -0.3%     -24  [ = ]       0    .debug_abbrev
  -0.0%    -118  [ = ]       0    .debug_loc
  -0.0%    -230  [ = ]       0    .debug_str
  +0.0% +1.62Ki  +0.1%    +284    TOTAL
use_config/nrf52840_ble_split (peripheral) — 322.3 KiB → 322.2 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 296548	   5920	  27512	 329980	  508fc	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 296560	   5920	  27512	 329992	  50908	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.11Ki  [ = ]       0    .debug_str
  +0.0%    +413  [ = ]       0    .debug_info
  +0.0%     +22  [ = ]       0    .debug_loc
  -0.0%      -1  [ = ]       0    .strtab
  -0.0%     -12  -0.0%     -12    .text
 -29.0%     -18  [ = ]       0    [Unmapped]
  -0.0%     -84  [ = ]       0    .debug_line
  +0.0% +1.43Ki  -0.0%     -12    TOTAL
use_config/pi_pico_w_ble — 659.3 KiB → 659.5 KiB (+0.03% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 619740	      0	  55572	 675312	  a4df0	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 619524	      0	  55572	 675096	  a4d18	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +857  [ = ]       0    .debug_info
  +0.1%    +216  +0.1%    +216    .text
  +0.2%    +128  [ = ]       0    .symtab
  +0.0%    +123  [ = ]       0    .strtab
  +0.0%     +89  [ = ]       0    .debug_str
  +0.1%     +32  [ = ]       0    .debug_frame
  +0.0%      +8  [ = ]       0    .debug_aranges
  +4.3%      +2  [ = ]       0    [Unmapped]
  -0.0%      -4  [ = ]       0    .debug_line
  -0.0%      -8  [ = ]       0    .debug_ranges
  -0.1%    -639  [ = ]       0    .debug_loc
  +0.0%    +804  +0.0%    +216    TOTAL
use_config/rp2040 — 147.2 KiB → 147.3 KiB (+0.06% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135440	      0	  15372	 150812	  24d1c	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135336	      0	  15372	 150708	  24cb4	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +568  [ = ]       0    .debug_str
  +0.0%    +481  [ = ]       0    .debug_info
  +0.1%    +153  [ = ]       0    .debug_line
  +0.1%    +112  [ = ]       0    .strtab
  +0.1%    +104  +0.1%    +104    .text
  +0.2%     +64  [ = ]       0    .symtab
  +0.2%     +32  [ = ]       0    .debug_frame
   +58%     +22  [ = ]       0    [Unmapped]
  +0.0%      +8  [ = ]       0    .debug_aranges
  -0.2%    -192  [ = ]       0    .debug_ranges
  -0.2%    -568  [ = ]       0    .debug_loc
  +0.0%    +784  +0.1%    +104    TOTAL
use_config/rp2040_split (central) — 160.4 KiB → 160.6 KiB (+0.06% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 148224	      0	  16184	 164408	  28238	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 148116	      0	  16184	 164300	  281cc	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +544  [ = ]       0    .debug_info
  +0.1%    +135  [ = ]       0    .debug_line
  +0.1%    +108  [ = ]       0    .strtab
  +0.1%    +108  +0.1%    +108    .text
  +0.2%     +64  [ = ]       0    .symtab
  +0.2%     +32  [ = ]       0    .debug_frame
  +0.0%      +8  [ = ]       0    .debug_aranges
 -16.9%     -10  [ = ]       0    [Unmapped]
  -0.2%    -192  [ = ]       0    .debug_ranges
  -0.0%    -285  [ = ]       0    .debug_str
  -0.2%    -588  [ = ]       0    .debug_loc
  -0.0%     -76  +0.1%    +108    TOTAL
use_config/rp2040_split (peripheral) — 27.4 KiB → 27.4 KiB (-0.01% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25252	     60	   2764	  28076	   6dac	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25256	     60	   2764	  28080	   6db0	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
   +12%      +5  [ = ]       0    [Unmapped]
  -0.1%      -4  -0.1%      -4    .rodata
  -0.0%      -4  [ = ]       0    .strtab
  -0.0%      -5  [ = ]       0    .debug_str
  -0.0%      -8  -0.0%      -4    TOTAL
use_config/stm32f1 — 62.6 KiB → 62.9 KiB (+0.36% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  56828	     28	   7504	  64360	   fb68	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  56596	     28	   7504	  64128	   fa80	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2%   +1020  [ = ]       0    .debug_info
  +0.0%    +289  [ = ]       0    .debug_str
  +0.6%    +272  [ = ]       0    .debug_ranges
  +0.4%    +232  +0.4%    +232    .text
  +0.3%    +225  [ = ]       0    .debug_line
  +0.6%    +180  [ = ]       0    .strtab
  +0.6%    +128  [ = ]       0    .symtab
  +0.6%     +80  [ = ]       0    .debug_frame
  +0.5%     +32  [ = ]       0    .debug_aranges
  -8.3%      -5  [ = ]       0    [Unmapped]
  -0.1%    -177  [ = ]       0    .debug_loc
  +0.1% +2.22Ki  +0.4%    +232    TOTAL
use_config/stm32h7 — 99.8 KiB → 100.0 KiB (+0.23% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  92384	    268	   9736	 102388	  18ff4	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  92140	    268	   9736	 102144	  18f00	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +481  [ = ]       0    .debug_info
  +0.4%    +296  [ = ]       0    .debug_ranges
  +0.3%    +244  +0.3%    +244    .text
  +0.2%    +198  [ = ]       0    .debug_line
  +0.3%    +180  [ = ]       0    .strtab
  +0.5%    +128  [ = ]       0    .symtab
  +0.5%     +80  [ = ]       0    .debug_frame
  +0.0%     +63  [ = ]       0    .debug_loc
  +0.1%     +32  [ = ]       0    .debug_aranges
   +21%     +12  [ = ]       0    [Unmapped]
  -0.0%    -238  [ = ]       0    .debug_str
  +0.0% +1.44Ki  +0.2%    +244    TOTAL
use_rust/nrf52832_ble — 359.5 KiB → 359.8 KiB (+0.06% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 329768	   5264	  33368	 368400	  59f10	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 329544	   5264	  33368	 368176	  59e30	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +224  +0.1%    +224    .text
  +0.1%    +205  [ = ]       0    .strtab
  +0.1%    +200  [ = ]       0    .debug_ranges
  +0.1%    +160  [ = ]       0    .symtab
  +0.2%    +100  [ = ]       0    .debug_frame
  +0.1%     +40  [ = ]       0    .debug_aranges
  +1.8%      +1  [ = ]       0    [Unmapped]
  -0.4%     -35  [ = ]       0    .debug_abbrev
  -0.0%     -75  [ = ]       0    .debug_line
  -0.0%    -580  [ = ]       0    .debug_str
  -0.2% -1.24Ki  [ = ]       0    .debug_loc
  -0.1% -2.40Ki  [ = ]       0    .debug_info
  -0.1% -3.41Ki  +0.1%    +224    TOTAL
use_rust/nrf52840_ble — 417.8 KiB → 418.0 KiB (+0.04% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 376084	   5264	  46656	 428004	  687e4	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 375884	   5264	  46656	 427804	  6871c	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +1.05Ki  [ = ]       0    .debug_info
  +0.0%    +564  [ = ]       0    .debug_str
  +0.1%    +200  +0.1%    +200    .text
  +0.1%    +160  [ = ]       0    .debug_ranges
  +0.0%    +141  [ = ]       0    .debug_loc
  +0.1%     +96  [ = ]       0    .symtab
  +0.0%     +35  [ = ]       0    .strtab
  +0.0%     +31  [ = ]       0    .debug_line
  +0.0%     +16  [ = ]       0    .debug_frame
  +0.0%      +8  [ = ]       0    .debug_aranges
 -17.0%      -9  [ = ]       0    [Unmapped]
  -0.7%     -55  [ = ]       0    .debug_abbrev
  +0.0% +2.21Ki  +0.0%    +200    TOTAL
use_rust/nrf52840_ble_split (central) — 506.6 KiB → 506.8 KiB (+0.04% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 459668	   6588	  52728	 518984	  7eb48	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 459444	   6588	  52728	 518760	  7ea68	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +424  [ = ]       0    .debug_info
  +0.1%    +332  [ = ]       0    .debug_line
  +0.1%    +224  +0.1%    +224    .text
  +0.1%    +160  [ = ]       0    .debug_ranges
  +0.0%     +64  [ = ]       0    .symtab
  +0.0%     +49  [ = ]       0    .strtab
  +0.1%     +32  [ = ]       0    .debug_frame
  +0.0%     +16  [ = ]       0    .debug_aranges
  +9.8%      +6  [ = ]       0    [Unmapped]
  -0.0%      -2  [ = ]       0    .debug_abbrev
  -0.0%    -182  [ = ]       0    .debug_loc
  -0.1% -2.28Ki  [ = ]       0    .debug_str
  -0.0% -1.18Ki  +0.0%    +224    TOTAL
use_rust/nrf52840_ble_split (peripheral) — 319.0 KiB → 319.0 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 294992	   5360	  26272	 326624	  4fbe0	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 294992	   5360	  26272	 326624	  4fbe0	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +409  [ = ]       0    .debug_str
  -0.0%      -1  [ = ]       0    .strtab
  -4.3%      -2  [ = ]       0    [Unmapped]
  -0.0%     -96  [ = ]       0    .debug_line
  -0.0%    -254  [ = ]       0    .debug_info
  +0.0%     +56  [ = ]       0    TOTAL
use_rust/pi_pico_w_ble — 488.0 KiB → 660.1 KiB (+35.26% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 620188	      0	  55716	 675904	  a5040	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 443980	      0	  55716	 499696	  79ff0	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +156%  +171Ki  +156%  +171Ki    .rodata
  +0.0%   +1017  [ = ]       0    .debug_info
  +0.1%    +248  +0.1%    +248    .text
  +0.0%    +195  [ = ]       0    .debug_loc
  +0.0%    +157  [ = ]       0    .debug_str
  +0.2%    +128  [ = ]       0    .symtab
  +0.0%    +123  [ = ]       0    .strtab
  +0.0%     +96  [ = ]       0    .debug_ranges
  +0.0%     +41  [ = ]       0    .debug_line
  +0.1%     +32  [ = ]       0    .debug_frame
  +0.0%      +8  [ = ]       0    .debug_aranges
 -18.8%     -13  [ = ]       0    [Unmapped]
  +2.1%  +173Ki   +35%  +172Ki    TOTAL
use_rust/rp2040 — 147.2 KiB → 147.3 KiB (+0.06% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135624	      0	  15252	 150876	  24d5c	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135520	      0	  15252	 150772	  24cf4	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +685  [ = ]       0    .debug_info
  +0.1%    +151  [ = ]       0    .debug_line
  +0.1%    +112  [ = ]       0    .strtab
  +0.1%    +104  +0.1%    +104    .text
  +0.2%     +64  [ = ]       0    .symtab
  +0.2%     +32  [ = ]       0    .debug_frame
  +0.0%      +8  [ = ]       0    .debug_aranges
 -16.7%      -8  [ = ]       0    [Unmapped]
  -0.0%     -82  [ = ]       0    .debug_str
  -0.2%    -192  [ = ]       0    .debug_ranges
  -0.2%    -578  [ = ]       0    .debug_loc
  +0.0%    +296  +0.1%    +104    TOTAL
use_rust/rp2040_split (central) — 159.6 KiB → 159.7 KiB (+0.06% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 147592	      0	  15964	 163556	  27ee4	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 147488	      0	  15964	 163452	  27e7c	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +447  [ = ]       0    .debug_info
  +0.1%    +145  [ = ]       0    .debug_line
  +0.1%    +108  [ = ]       0    .strtab
  +0.1%    +104  +0.1%    +104    .text
  +0.2%     +64  [ = ]       0    .symtab
  +0.2%     +32  [ = ]       0    .debug_frame
  +0.0%     +24  [ = ]       0    .debug_str
  +0.0%      +8  [ = ]       0    .debug_aranges
 -17.0%      -8  [ = ]       0    [Unmapped]
  -0.2%    -192  [ = ]       0    .debug_ranges
  -0.2%    -568  [ = ]       0    .debug_loc
  +0.0%    +164  +0.1%    +104    TOTAL
use_rust/rp2040_split (peripheral) — 27.8 KiB → 27.8 KiB (-0.01% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25372	     60	   3028	  28460	   6f2c	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25376	     60	   3028	  28464	   6f30	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +7.4%      +4  [ = ]       0    [Unmapped]
  -0.1%      -4  -0.1%      -4    .rodata
  -0.0%      -4  [ = ]       0    .strtab
  -0.0%      -8  [ = ]       0    .debug_str
  -0.0%     -12  -0.0%      -4    TOTAL
use_rust/stm32f1 — 62.6 KiB → 62.9 KiB (+0.34% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  56868	     28	   7480	  64376	   fb78	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  56644	     28	   7480	  64152	   fa98	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +729  [ = ]       0    .debug_info
  +0.6%    +272  [ = ]       0    .debug_ranges
  +0.4%    +224  +0.4%    +224    .text
  +0.2%    +211  [ = ]       0    .debug_line
  +0.6%    +180  [ = ]       0    .strtab
  +0.6%    +128  [ = ]       0    .symtab
  +0.6%     +80  [ = ]       0    .debug_frame
  +0.0%     +75  [ = ]       0    .debug_str
  +0.7%     +32  [ = ]       0    .debug_aranges
 -11.8%      -6  [ = ]       0    [Unmapped]
  -0.1%    -177  [ = ]       0    .debug_loc
  +0.1% +1.71Ki  +0.3%    +224    TOTAL
use_rust/stm32h7 — 121.2 KiB → 121.4 KiB (+0.19% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 108492	    324	  15524	 124340	  1e5b4	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 108256	    324	  15524	 124104	  1e4c8	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +412  [ = ]       0    .debug_info
  +0.3%    +240  [ = ]       0    .debug_ranges
  +0.2%    +238  [ = ]       0    .debug_line
  +0.2%    +236  +0.2%    +236    .text
  +0.2%    +205  [ = ]       0    .strtab
  +0.4%    +160  [ = ]       0    .symtab
  +0.5%     +96  [ = ]       0    .debug_frame
  +0.1%     +40  [ = ]       0    .debug_aranges
   +55%     +23  [ = ]       0    [Unmapped]
  -0.0%    -119  [ = ]       0    .debug_loc
  -0.0%    -211  [ = ]       0    .debug_str
  +0.0% +1.29Ki  +0.2%    +236    TOTAL

@yekingyan yekingyan force-pushed the fix/osm-osl-timeout-non-consuming branch from 7c1d906 to c74a484 Compare May 29, 2026 15:02
Comment on lines +664 to +665
// separate OSM + morse/tap-hold timing issue, unrelated to the timeout
// fix in this change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like "temporally bounded" LLM comments like this should be removed. It's referring to "this change" but - 50 commits and code changes later - I'm not going to know what that change is without having to dig it up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants