Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : #include <utility> 8 : 9 : namespace Parallel::detail { 10 : 11 : // Allow 64 inline entry method calls before we fall back to Charm++. This is 12 : // done to avoid blowing the stack. 13 : inline bool max_inline_entry_methods_reached() { 14 : #ifndef SPECTRE_PROFILING 15 : thread_local size_t approx_stack_depth = 0; 16 : approx_stack_depth++; 17 : if (approx_stack_depth < 64) { 18 : return false; 19 : } 20 : approx_stack_depth = 0; 21 : #endif 22 : return true; 23 : } 24 : } // namespace Parallel::detail