varlist.template.h 656 B

12345678910111213141516171819202122232425
  1. #ifndef AFUN_VARLIST_TEMPLATE_H
  2. #define AFUN_VARLIST_TEMPLATE_H
  3. #include "varlist.h"
  4. namespace aFuncore {
  5. template <typename Callable, typename...T>
  6. void VarList::forEach(Callable func, T...arg) {
  7. std::unique_lock<std::mutex> mutex{lock};
  8. for (auto &vs : varspace) {
  9. mutex.unlock();
  10. func(vs, arg...);
  11. mutex.lock();
  12. }
  13. }
  14. template <typename Callable, typename...T>
  15. void VarList::forEachLock(Callable func, T...arg) {
  16. std::unique_lock<std::mutex> mutex{lock};
  17. for (auto &vs : varspace)
  18. func(vs, arg...);
  19. }
  20. }
  21. #endif //AFUN_VARLIST_TEMPLATE_H