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

nebkat / flutter-bluebird / 37047222290
88%

Build:
DEFAULT BRANCH: main
Ran 02 Oct 2026 06:26PM UTC
Jobs 1
Files 17
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 Oct 2026 06:24PM UTC coverage: 87.689% (+0.07%) from 87.619%
37047222290

push

github

nebkat
feat: order GATT operations on the platform instead of in Dart

Every call used to pass through two global Dart mutexes, `Mutex.global`
for GATT operations and `Mutex.platform` for everything, so the next
operation could not reach the platform until the previous result had
come back to Dart's event loop. A busy UI stretched the gap between
operations, one device's operations waited on another's, and a call
given up on at its `timeout` left the native slot busy, so the next one
failed with `operationInProgress`.

Android and Darwin now queue each device's operations natively, so both
mutexes go and a call reaches the platform as soon as it is made; the
platforms' own `_restartFuture` still gates everything on the hot-restart
handshake. Connects stay one at a time across all devices
(`Mutex.connect`), since Android is unreliable when `connectGatt` calls
overlap. A queued `disconnect()` now waits for the calls already made to
that device, and its connect attempt, rather than for every device's.

Web has no native layer, and Chrome rejects a GATT operation started while
another is pending, so `bluebird_web` gets its own per-device queue.
Operations still waiting when the device disconnects fail with
`deviceDisconnected` instead of running on the next connection, and the
one running keeps the queue until it settles so the next connection's
operations never overlap it.

`Bluebird.invoke` runs the call inside `Future.sync`, so an unsupported
platform fails the returned future rather than throwing at the caller, as
it did while the mutex made the call asynchronous.

Requires the native queues from the two previous commits.

27 of 29 new or added lines in 4 files covered. (93.1%)

926 of 1056 relevant lines covered (87.69%)

4.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
83.25
0.0% packages/bluebird/lib/src/bluetooth_device.dart
Jobs
ID Job ID Ran Files Coverage
1 37047222290.1 02 Oct 2026 06:26PM UTC 17
87.69
GitHub Action Run
Source Files on build 37047222290
  • Tree
  • List 17
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37047222290
  • 8f2bb4a5 on github
  • Prev Build on main (#36187235650)
  • Next Build on main (#37047496396)
  • Delete
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