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

iconara / ione / 205 / 1
100%
master: 99%

Build:
Build:
LAST BUILD BRANCH: v1.2.4
DEFAULT BRANCH: master
Ran 14 Jul 2015 01:41PM UTC
Files 12
Run time 1s
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

14 Jul 2015 01:39PM UTC coverage: 98.694%. First build
1.9.3

push

travis-ci

grddev
Avoid stack overflow error with Future.after

With a long list of resolved futures, the previous implementation
caused a stack-overflow exception, as each call to await_next happened
within the previous call (synchronously).

This changes the behavior to loop over futures instead of using
recursion while on_complete dispatches synchronously in the same thread.
To avoid code duplication we always dispatch in the terminating cases,
even if it introduces an extra stack frame. The looping condition
protects against cases where a future would be resolved at a later
point by the calling thread (which is what the tests do), and the last
part of the condition protects against dispatching in other threads.

While the algorithm looks like a loop that adds multiple concurrent
on_complete listeners, the intention is in fact still to only ever have
one concurrent listener, making sure that the combined nil future is
only ever accessed from one thread at a time (without using locks).

2569 of 2603 relevant lines covered (98.69%)

7020.35 hits per line

Source Files on job 205.1 (1.9.3)
  • Tree
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 205
  • Travis Job 205.1
  • 9c12c9c3 on github
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

© 2025 Coveralls, Inc