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

rsocket / rsocket-cpp / 1666 / 3
38%
master: 38%

Build:
DEFAULT BRANCH: master
Ran 20 Jun 2017 11:04PM UTC
Files 236
Run time 10s
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

20 Jun 2017 11:00PM UTC coverage: 73.902% (+0.07%) from 73.832%
GCC_VERSION=5 BUILD_TYPE=Debug CPP_VERSION=14 ASAN=On

push

travis-ci

web-flow
Fix races in closing a TcpReaderWriter (#523)

* Fix races in closing a TcpReaderWriter

Each TcpReaderWriter is only accessed by a single thread, but it interleaves
callbacks in ways that aren't safe.  When a TcpInputSubscription or
TcpOutputSubscriber tries to close a TcpReaderWriter, it would only close the
socket, and then let the folly::AsyncSocket callbacks handle the rest in
follow-up events.  Depending on what events are already in the EventBase, we can
run into an inconsistent state.

Fix this by having TcpReaderWriter::close{,Err}() which go through the
{subscriber,subscription,socket}.  They are idempotent, so they are safe to call
in follow-up read{EOF,Err}() events.

Added new test that makes up to 1000 connections in parallel.  Running it
locally without this diff hits CHECK() errors in ~TcpReaderWriter.

* Fix incorrect tests

Of course they leak, we're not synchronizing on the futures before exiting main.
The "RacyFoo" tests aren't valid.

7654 of 10357 relevant lines covered (73.9%)

690.2 hits per line

Source Files on job 1666.3 (GCC_VERSION=5 BUILD_TYPE=Debug CPP_VERSION=14 ASAN=On)
  • Tree
  • List 0
  • Changed 116
  • Source Changed 3
  • Coverage Changed 116
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 1666
  • Travis Job 1666.3
  • cdee2ff4 on github
  • Prev Job for GCC_VERSION=5 BUILD_TYPE=Debug CPP_VERSION=14 ASAN=On on master (#1664.3)
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