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

ivmai / bdwgc / 1326 / 5
77%
master: 77%

Build:
DEFAULT BRANCH: master
Ran 14 Jun 2022 06:10AM UTC
Files 58
Run time 19s
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 Jun 2022 06:05AM UTC coverage: 73.968% (-0.1%) from 74.1%
CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions" CFLAGS_EXTRA="-D USE_CUSTOM_SPECIFIC" CC_FOR_CHECK=g++ MAKEFILE_TARGETS="all" MAKEFILE_TARGETS_CHECK="check" NO_CLONE_LIBATOMIC_OPS=true REPORT_COVERAGE=true TESTS_CUSTOM_RUN=true

push

travis-ci-com

ivmai
Fix race between calloc_explicitly_typed/push_complex_descriptor with lock
(fix of commits 4e020ef3c, 1e6c80be3)

Issue #449 (bdwgc).

Hold the allocation lock while writing a complex descriptor to the
object to ensure that the descriptor is seen by GC_array_mark_proc
as expected.

It should be possible to avoid locking by using the atomic operations
(with the release barrier in GC_calloc_explicitly_typed) but this
would need the acquire barrier in GC_array_mark_proc and its callee
(doing without the acquire barrier is tricky as GC_mark_some might be
invoked with the world running).

* typd_mlc.c [AO_HAVE_store] (GC_calloc_explicitly_typed): Do not use
AO_store operations.
* typd_mlc.c (GC_calloc_explicitly_typed): Remove volatile for lp
local variable; add comment; replace set_obj_descr() calls with direct
write to ((word*)op)[nwords-1]; wrap write to *lp and writing to
((word*)op)[nwords-1] into LOCK/UNLOCK.
* typd_mlc.c (get_complex_descr): Remove TODO item (but not
GC_ATTR_NO_SANITIZE_THREAD attribute).

7365 of 9957 relevant lines covered (73.97%)

8576162.39 hits per line

Source Files on job 1326.5 (CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions" CFLAGS_EXTRA="-D USE_CUSTOM_SPECIFIC" CC_FOR_CHECK=g++ MAKEFILE_TARGETS="all" MAKEFILE_TARGETS_CHECK="check" NO_CLONE_LIBATOMIC_OPS=true REPORT_COVERAGE=true TESTS_CUSTOM_RUN=true)
  • Tree
  • List 0
  • Changed 36
  • Source Changed 1
  • Coverage Changed 36
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 866
  • Travis Job 1326.5
  • 8fcba098 on github
  • Prev Job for CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions" CFLAGS_EXTRA="-D USE_CUSTOM_SPECIFIC" CC_FOR_CHECK=g++ MAKEFILE_TARGETS="all" MAKEFILE_TARGETS_CHECK="check" NO_CLONE_LIBATOMIC_OPS=true REPORT_COVERAGE=true TESTS_CUSTOM_RUN=true on master (#1325.5)
  • Next Job for CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions" CFLAGS_EXTRA="-D USE_CUSTOM_SPECIFIC" CC_FOR_CHECK=g++ MAKEFILE_TARGETS="all" MAKEFILE_TARGETS_CHECK="check" NO_CLONE_LIBATOMIC_OPS=true REPORT_COVERAGE=true TESTS_CUSTOM_RUN=true on master (#1327.5)
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