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

ivmai / bdwgc / 1322
77%

Build:
DEFAULT BRANCH: master
Ran 01 Jun 2022 06:46PM UTC
Jobs 1
Files 58
Run time 12min
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

01 Jun 2022 06:15PM UTC coverage: 73.865% (+0.06%) from 73.802%
1322

push

travis-ci-com

ivmai
Prevent (fix) parallel custom mark procs run in single-threaded clients

If the collector is built with parallel marker support then marking
is performed in parallel on multi-core targets.  Thus, if the client
provides custom mark procedures, then they could be executed in
parallel.  In case of a single-threaded client (developed for the
older libgc version with the parallel mark support off), its custom
mark procedures might not be prepared to be launched in parallel.

Now, the parallel mark threads are not launched, even if available,
until the client starts a (user) thread (e.g. calls pthread_create or
GC_allow_register_threads) or tells the collector explicitly to start
the mark threads (by calling GC_start_mark_threads).

* doc/README.macros (GC_ALWAYS_MULTITHREADED): Update documentation.
* doc/scale.md (Options for enhanced scalability): Likewise.
* include/gc/gc.h [GC_THREADS] (GC_parallel,
GC_allow_register_threads): Update comment.
* include/gc/gc.h (GC_set_markers_count, GC_start_mark_threads):
Likewise.
* include/gc/gc_mark.h (GC_mark_proc): Likewise.
* include/gc/gc_mark.h (GC_PROC_BYTES, GC_ms_entry): Move upper to be
before the comment belonging to GC_mark_proc.
* misc.c [THREADS && PARALLEL_MARK] (GC_init): Do not call
GC_start_mark_threads_inner().
* misc.c [PARALLEL_MARK] (GC_start_mark_threads): Call
GC_start_mark_threads_inner() even if THREAD_SANITIZER or
no CAN_HANDLE_FORK.
* misc.c [THREADS] (GC_get_parallel): Remove comment.
* pthread_support.c [PARALLEL_MARK && !CAN_HANDLE_FORK]
(available_markers_m1): Define as a variable.
* win32_threads.c [PARALLEL_MARK && !CAN_HANDLE_FORK]
(available_markers_m1): Likewise.
* pthread_support.c [PARALLEL_MARK && !CAN_HANDLE_FORK]
(GC_wait_for_gc_completion): Declare.
* pthread_support.c [PARALLEL_MARK && !CAN_HANDLE_FORK]
(GC_start_mark_threads_inner): If GC_parallel then return; call
GC_wait_for_gc_completion(); set GC_markers_m1 value from
available_markers_m1.
* win32_threads.c [PARALLEL_... (continued)

8 of 8 new or added lines in 2 files covered. (100.0%)

7354 of 9956 relevant lines covered (73.87%)

9222349.78 hits per line

Jobs
ID Job ID Ran Files Coverage
5 1322.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) 01 Jun 2022 06:46PM UTC 0
73.87
Travis Job 1322.5
Source Files on build 1322
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #1322
  • 020b05d7 on github
  • Prev Build on master (#1321)
  • Next Build on master (#1323)
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