• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dangernoodle-io / breadboard / 26351861479
100%

Build:
DEFAULT BRANCH: main
Ran 24 May 2026 04:28AM UTC
Jobs 1
Files 21
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 May 2026 04:27AM UTC coverage: 100.0%. Remained the same
26351861479

push

github

web-flow
refactor(bb_mdns): coalesce browse events into batched dispatcher items (#309)

IDF's mDNS browse callback fires once per peer per burst (one per peer in
the answer packet). On CPU-starved boards (tdongle-s3, esp32-wroom32) the
per-event pool drained faster than the dispatcher task could consume it,
causing "event pool exhausted, dropping event" bursts during browse-refresh
(KB 386, audit finding 9.2).

Producer-side fix: internal_notifier() now appends each result to a static
batch buffer (BB_MDNS_BATCH_MAX=16) under the existing s_evt_pool_lock
mutex. A one-shot 50 ms esp_timer (flush timer) fires after the first
append; all peers collected in that window go out as a single
bb_mdns_batch_item_t pointer in one xQueueSend. The dispatcher unpacks the
batch and calls the per-peer on_added/on_removed callbacks — consumer API
is preserved verbatim (bb_mdns_browse_start / bb_mdns_peer_cb_t /
bb_mdns_peer_removed_cb).

The old per-event pool (s_evt_pool / s_evt_in_use / evt_pool_alloc) is
removed; BB_MDNS_EVT_POOL_SIZE Kconfig is retained (default 8) as the
dispatch queue depth — with batching even 2 slots is sufficient.

Host test coverage: test_bb_mdns_coalesce.c (10 cases) exercises the
coalescing shadow in platform/host/bb_mdns/bb_mdns_host.c under
BB_MDNS_TESTING. Covers: N-peer single flush, single-peer latency, removal
events, empty-flush noop, concurrent-append second-batch, batch-full
overflow guard, multiple sequential flushes, null-peer removal, no-sub
dispatch, and reset semantics. Coverage stays 100% lines + branches.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

1334 of 1334 branches covered (100.0%)

Branch coverage included in aggregate %.

2268 of 2268 relevant lines covered (100.0%)

911.65 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26351861479.1 24 May 2026 04:28AM UTC 21
100.0
GitHub Action Run
Source Files on build 26351861479
  • Tree
  • List 21
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26351861479
  • 4a352e85 on github
  • Prev Build on main (#26324133953)
  • Next Build on main (#26352247157)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc