CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
#define CPPAD_ASSERT_FIRST_CALL_NOT_PARALLEL
Value:
static bool assert_first_call = true; \
if( assert_first_call ) \
"In parallel mode and parallel_setup has not been called." \
); \
assert_first_call = false; \
}
#define CPPAD_ASSERT_KNOWN(exp, msg)
Check that exp is true, if not print msg and terminate execution.
static bool in_parallel(void)
Are we in a parallel execution state; i.e., is it possible that other threads are currently executing...

Check that the first call to a routine is not during parallel execution mode.

If NDEBUG is defined, this macro has no effect (not even the definition of (assert_first_call). Otherwise, the variable

static bool assert_first_call

is defined and if the first call is executed in parallel mode, execution is terminated and the source code line number is reported.

Definition at line 178 of file cppad_assert.hpp.

Referenced by CppAD::thread_alloc::capacity_info(), CppAD::CheckSimpleVector(), CppAD::atomic_base< double >::class_name(), CppAD::atomic_base< double >::class_object(), CppAD::elapsed_seconds(), CppAD::thread_alloc::get_memory(), CppAD::discrete< Base >::List(), CppAD::local::NumArg(), CppAD::local::NumRes(), CppAD::local::one_element_std_set(), CppAD::Rosen34(), CppAD::Runge45(), CppAD::AD< Base >::tape_handle(), CppAD::AD< Base >::tape_id_handle(), CppAD::AD< Base >::tape_manage(), CppAD::thread_alloc::thread_info(), and CppAD::local::two_element_std_set().