make expensive checks in asserts optional (#125)
This adds an Internal/EnableExpensiveChecks setting for enabling some or all expensive run-time checks to avoid a massive slowdown when assertions are enabled at compile-time. Currently these cover only the writer and reader-history cache checking. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
a39701fc2e
commit
7540ac8229
4 changed files with 93 additions and 29 deletions
|
@ -2625,6 +2625,9 @@ int dds_rhc_takecdr
|
|||
#define CHECK_MAX_CONDS 64
|
||||
static int rhc_check_counts_locked (struct rhc *rhc, bool check_conds, bool check_qcmask)
|
||||
{
|
||||
if (!(config.enabled_xchecks & DDS_XCHECK_RHC))
|
||||
return 1;
|
||||
|
||||
const uint32_t ncheck = rhc->nconds < CHECK_MAX_CONDS ? rhc->nconds : CHECK_MAX_CONDS;
|
||||
unsigned n_instances = 0, n_nonempty_instances = 0;
|
||||
unsigned n_not_alive_disposed = 0, n_not_alive_no_writers = 0, n_new = 0;
|
||||
|
|
|
@ -258,6 +258,7 @@ static void check_whc (const struct whc_impl *whc)
|
|||
assert (whc->maxseq_node == whc_findmax_procedurally (whc));
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
if (config.enabled_xchecks & DDS_XCHECK_WHC)
|
||||
{
|
||||
struct whc_intvnode *firstintv;
|
||||
struct whc_node *cur;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue