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

dangernoodle-io / breadboard / 30762475923
97%

Build:
DEFAULT BRANCH: main
Ran 02 Aug 2026 07:04PM UTC
Jobs 1
Files 214
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

02 Aug 2026 07:02PM UTC coverage: 96.854%. Remained the same
30762475923

push

github

web-flow
fix: propagate bb_task_create() errors from bb_timer dispatcher/worker (#1202)

Both bb_timer's dispatcher bootstrap (disp_ensure_started, backing
bb_timer_disp -- the shared MODE-A dispatcher every bb_timer_deferred_*
call uses) and its dedicated MODE-B worker creation
(bb_timer_worker_periodic_create, backing bb_cache's eviction-sweep
worker via bb_timer_worker_periodic_create) already create their task
via bb_task_create() (since #723), participating in bb_task_resolve()'s
core-claim steering unconditionally. Both call sites left core_owning
implicit-false; make it explicit so a future review can audit it at a
glance rather than relying on struct zero-init.

Fix the one real gap: both call sites collapsed every bb_task_create()
failure (BB_ERR_NO_MEM, BB_ERR_INVALID_ARG, ...) into a hardcoded
BB_ERR_NO_SPACE, the same review finding B1-1364 PR3 hit on its own
call site. The dispatcher bootstrap needed a side-channel
(s_disp_last_err) since bb_once_run_fallible()'s fn signature is
bool-only and cannot carry a bb_err_t back directly; the worker path
now just returns task_err instead of a fixed constant.

s_disp_last_err is written inside disp_bootstrap()
(bb_once_run_fallible()'s exclusive RUNNING window) but read by
disp_ensure_started() after that call returns, outside that window
-- a plain non-atomic global there is a genuine data race/UB under
the C11 memory model even though every caller only logs the value
today. Made it _Atomic bb_err_t and rewrote its comment to state
the actual dependency (bb_once.h's documented
single-active-caller-at-a-time boot-time contract) instead of
asserting a same-attempt guarantee the code doesn't make.

B1-1364 PR4.

8220 of 8784 branches covered (93.58%)

Branch coverage included in aggregate %.

13914 of 14069 relevant lines covered (98.9%)

2603.51 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30762475923.1 02 Aug 2026 07:04PM UTC 214
96.85
GitHub Action Run
Source Files on build 30762475923
  • Tree
  • List 214
  • 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 #30762475923
  • 05bbb223 on github
  • Prev Build on main (#30761489555)
  • Next Build on main (#30764553383)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc