diff --git a/external/versions.cmake b/external/versions.cmake index 2d39a0665d..bd82b1adf5 100644 --- a/external/versions.cmake +++ b/external/versions.cmake @@ -19,8 +19,8 @@ set(TA_INSTALL_EIGEN_PREVIOUS_VERSION 3.3.7) set(TA_INSTALL_EIGEN_URL_HASH b9e98a200d2455f06db9c661c5610496) set(TA_INSTALL_EIGEN_PREVIOUS_URL_HASH b9e98a200d2455f06db9c661c5610496) -set(TA_TRACKED_MADNESS_TAG f47f962213be0b1e149f5b56826992f27278128e) -set(TA_TRACKED_MADNESS_PREVIOUS_TAG 6e7039223ececa052d4b6e29f897c743eb0b9fa3) +set(TA_TRACKED_MADNESS_TAG 6694b3adc9204dc86aba9911444aa6737171c9e3) +set(TA_TRACKED_MADNESS_PREVIOUS_TAG f47f962213be0b1e149f5b56826992f27278128e) set(TA_TRACKED_MADNESS_VERSION 0.10.1) set(TA_TRACKED_MADNESS_PREVIOUS_VERSION 0.10.1) diff --git a/src/TiledArray/initialize.h b/src/TiledArray/initialize.h index 0f0b288d93..5c2647e5b5 100644 --- a/src/TiledArray/initialize.h +++ b/src/TiledArray/initialize.h @@ -50,6 +50,10 @@ inline World& initialize(int& argc, char**& argv, const MPI_Comm& comm, /// when TiledArray::initialize was called). void finalize(); +void taskq_wait_busy(); +void taskq_wait_yield(); +void taskq_wait_usleep(int); + } // namespace TiledArray #endif // TILEDARRAY_INITIALIZE_H__INCLUDED diff --git a/src/TiledArray/tiledarray.cpp b/src/TiledArray/tiledarray.cpp index 9e88980b11..aa56ea2fec 100644 --- a/src/TiledArray/tiledarray.cpp +++ b/src/TiledArray/tiledarray.cpp @@ -76,8 +76,9 @@ TiledArray::World& TiledArray::initialize(int& argc, char**& argv, "TiledArray finalized MADWorld already, cannot re-initialize MADWorld " "again"); if (!initialized()) { - if (!madness::initialized()) + if (!madness::initialized()) { initialized_madworld_accessor() = true; + } else { // if MADWorld initialized, we must assume that comm is its default // World. if (madness::World::is_default(comm)) @@ -127,3 +128,16 @@ void TiledArray::ta_abort(const std::string &m) { std::cerr << m << std::endl; ta_abort(); } + + +void TiledArray::taskq_wait_busy() { + madness::threadpool_wait_policy(madness::WaitPolicy::Busy); +} + +void TiledArray::taskq_wait_yield() { + madness::threadpool_wait_policy(madness::WaitPolicy::Yield); +} + +void TiledArray::taskq_wait_usleep(int us) { + madness::threadpool_wait_policy(madness::WaitPolicy::Sleep, us); +}