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

p11-glue / p11-kit / 659
69%

Build:
DEFAULT BRANCH: master
Ran 14 Jun 2019 11:00AM UTC
Jobs 1
Files 141
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

pending completion
659

push

travis-ci

ueno
rpc: On UNIX wait on condition variable instead of FD if header is for a different thread.

If rpc_socket_read() receives a header for a different thread, it tries to yield by
releasing the read mutex and waiting on the socket's read FD. On Linux systems, this has
been observed to cause a performance problem in cases where multiple threads are being
used. Threads expecting a different header can rapidly unlock and relock the read mutex,
as they resume when sock->read_code hasn't changed. This can result in contention on the
read mutex, which delays the thread that is expecting to consume the header.

This fix updates rpc_socket_read() on UNIX to wait on a condition variable instead of the
socket's read FD. The condition variable is signalled when sock->read_code changes. This
allows waiting threads to only resume once the header and payload have been consumed by
their target thread. This fix only targets UNIX platforms, as the Windows version that
p11-kit targets by default (Windows 2000) does not provide support for condition
variables.

Signed-off-by: Simon Haggett <simon.haggett@gmail.com>

12 of 12 new or added lines in 1 file covered. (100.0%)

14336 of 17821 relevant lines covered (80.44%)

3495.06 hits per line

Jobs
ID Job ID Ran Files Coverage
2 659.2 (BUILD_OPTS="--enable-coverage" COVERAGE=yes SRCDIR=/coverage BUILDDIR=/coverage EXTRA_PKGS="lcov python-pip") 14 Jun 2019 11:00AM UTC 0
80.44
Travis Job 659.2
Source Files on build 659
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #659
  • 5fc2d67b on github
  • Prev Build on master (#643)
  • Next Build on master (#684)
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